English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL LIKE 문

MySQL에서 SQL SELECT 명령어를 사용하여 데이터를 읽는 것을 알고 있습니다. SELECT 문장에서 WHERE 절을 사용하여 특정 레코드를 얻을 수 있습니다.

WHERE 절에서 등호 =를 사용하여 데이터를 얻는 조건을 설정할 수 있습니다. 예를 들어, "w3codebox_author = 'oldtoolbag.com'".

때로는 w3codebox_author 필드는 "COM" 문자를 포함한 모든 레코드가 있을 때, WHERE 절에서 SQL LIKE 절을 사용해야 합니다.

SQL LIKE 절에서百分号 % 문자는 유사한 문자를 나타내며, UNIX나 정규 표현식에서의 별표와 유사합니다. *.

百分号 %를 사용하지 않으면, LIKE 절은 등호 =와 같은 효과를 가집니다.

문법

다음은 LIKE 절을 사용하여 데이터 테이블에서 데이터를 읽는 SQL SELECT 문장의 일반 문법입니다:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] field2 ='somevalue'
  • WHERE 절에서 어떤 조건을 지정할 수 있습니다.

  • WHERE 절에서 LIKE 절을 사용할 수 있습니다.

  • LIKE 절을 사용하여 등호 =를 대체할 수 있습니다.

  • LIKE는 일반적으로 %와 함께 사용되며, 유사한 특수 문자로서의 검색과 유사합니다.

  • AND나 OR를 사용하여 하나나 여러 조건을 지정할 수 있습니다.

  • DELETE나 UPDATE 명령어에서 WHERE...LIKE 절을 사용하여 조건을 지정할 수 있습니다.

명령 프롬프트에서 LIKE 절을 사용하여

다음은 SQL SELECT 명령어에서 WHERE...LIKE 절을 사용하여 MySQL 데이터 테이블 w3codebox_tbl에서 데이터를 읽는다.

온라인 예제

다음은 우리가 w3codebox_tbl 테이블에서 w3codebox_author 필드에 COM으로 끝나는 모든 레코드:

mysql> use w3codebox;
Database changed
mysql> SELECT * from w3codebox_tbl WHERE w3codebox_author LIKE '%COM';
+-----------+---------------+---------------+-----------------+
| w3codebox_id | w3codebox_title        | w3codebox_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3         | Java 학습       | oldtoolbag.com        | 2015-05-01      |
| 4         | Python 학습     | oldtoolbag.com        | 2016-03-06      |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)

PHP 스크립트에서 LIKE 문자열 사용

PHP 함수 mysqli_query()와 같은 SQL SELECT 명령을 WHERE...LIKE 문자열과 함께 사용하여 데이터를 가져옵니다.

이 함수는 SQL 명령을 실행하고 PHP 함수 mysqli_fetch_array()를 통해 모든 쿼리 데이터를 출력하는 데 사용됩니다.

만약 DELETE 또는 UPDATE에서 WHERE...LIKE 문자열을 사용하는 SQL 문을 사용할 경우 mysqli_fetch_array() 함수를 사용하지 않아도 됩니다.

온라인 예제

다음은 PHP 스크립트를 사용하여 w3codebox_tbl에서 w3codebox_author 필드에 COM으로 끝나는 모든 레코드:

<?php
$dbhost = 'localhost';  // MySQL 서버 호스트 주소
$dbuser = 'root';            // MySQL 사용자 이름
$dbpass = '123456';          // MySQL 사용자 이름 비밀번호
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die('连接失败: ' . mysqli_error($conn));
}
// 编码设定,以防乱码
mysqli_query($conn, "set names utf8');
 
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        WHERE w3codebox_author LIKE "%COM"';
 
mysqli_select_db($conn, 'w3codebox');
$retval = mysqli_query($conn, $sql);
if(! $retval)
{
    die('데이터 읽기 실패: ' . mysqli_error($conn));
}
echo '<h2">기본 튜토리얼 웹 mysqli_fetch_array 테스트<h2">
echo '<table border="1><tr><td> 강좌 ID</td><td>제목</td><td>저자</td><td>제출 날짜</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
    echo "<tr><td> {$row['w3codebox_id']}</td> ".
         "<td>{$row['w3codebox_title']} </td> ".
         "<td>{$row['w3codebox_author']} </td> ".
         "<td>{$row['submission_date']} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

출력 결과 다음과 같습니다: