MySQL-LIKE 절

우리는 SQL을 보았다 SELECTMySQL 테이블에서 데이터를 가져 오는 명령. 다음과 같은 조건절을 사용할 수도 있습니다.WHERE 필요한 레코드를 선택하는 절.

'같음'기호 (=)가있는 WHERE 절은 정확히 일치하려는 경우 잘 작동합니다. "tutorial_author = 'Sanjay'"와 같습니다. 그러나 tutorial_author 이름에 "jay"가 포함되어야하는 모든 결과를 필터링하려는 요구 사항이있을 수 있습니다. 이것은 다음을 사용하여 처리 할 수 ​​있습니다.SQL LIKE Clause WHERE 절과 함께.

SQL LIKE 절이 % 문자와 함께 사용되면 UNIX에서와 같이 메타 문자 (*)처럼 작동하고 명령 프롬프트에서 모든 파일 또는 디렉토리를 나열합니다. % 문자가 없으면 LIKE 절은equal to WHERE 절과 함께 서명하십시오.

통사론

다음 코드 블록에는 MySQL 테이블에서 데이터를 가져 오는 LIKE 절과 함께 SELECT 명령의 일반 SQL 구문이 있습니다.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • WHERE 절을 사용하여 모든 조건을 지정할 수 있습니다.

  • LIKE 절을 WHERE 절과 함께 사용할 수 있습니다.

  • 대신 LIKE 절을 사용할 수 있습니다. equals to 기호.

  • LIKE를 % 기호와 함께 사용하면 메타 문자 검색처럼 작동합니다.

  • 다음을 사용하여 둘 이상의 조건을 지정할 수 있습니다. AND 또는 OR 연산자.

  • WHERE ... LIKE 절을 DELETE 또는 UPDATE SQL 명령과 함께 사용하여 조건을 지정할 수도 있습니다.

명령 프롬프트에서 LIKE 절 사용

이것은 MySQL 테이블에서 선택한 데이터를 가져 오기 위해 WHERE ... LIKE 절과 함께 SQL SELECT 명령을 사용합니다. tutorials_tbl.

다음 예제는 모든 레코드를 반환합니다. tutorials_tbl 저자 이름이 끝나는 테이블 jay

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl 
   -> WHERE tutorial_author LIKE '%jay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      3      |  JAVA Tutorial |     Sanjay      |    2007-05-21   |   
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)

mysql>

PHP 스크립트 내에서 LIKE 절 사용

WHERE ... LIKE 절의 유사한 구문을 PHP 함수에 사용할 수 있습니다. mysql_query(). 이 함수는 SQL 명령을 실행하고 나중에 다른 PHP 함수를 실행하는 데 사용됩니다.mysql_fetch_array() WHERE ... LIKE 절이 SELECT 명령과 함께 사용되는 경우 선택한 모든 데이터를 가져 오는 데 사용할 수 있습니다.

그러나 WHERE ... LIKE 절이 DELETE 또는 UPDATE 명령과 함께 사용되는 경우 추가 PHP 함수 호출이 필요하지 않습니다.

다음 예제를 시도하여 모든 레코드를 반환하십시오. tutorials_tbl 작성자 이름에 포함 된 테이블 jay

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author LIKE "%jay%"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   } 
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>