Мы увидели команду SQL SELECT для извлечения данных из таблицы MySQL. Мы также можем использовать условное предложение, называемое предложением WHERE , для выбора необходимых записей.

Предложение WHERE с знаком «equal to» (=) отлично работает там, где мы хотим сделать точное совпадение. Например, если «tutorial_author =’ Sanjay ‘ «. Но может быть требование, когда мы хотим отфильтровать все результаты, в которых имя tutorial_author должно содержать «jay». Это можно обрабатывать с использованием предложения SQL LIKE вместе с предложением WHERE.

Если предложение SQL LIKE используется вместе с символом%, то оно будет работать как метасимвол (*), как в UNIX, и перечисляя все файлы или каталоги в командной строке. Без символа%, предложение LIKE очень похоже на знак равенства вместе с предложением WHERE.

Синтаксис

Следующий блок кода имеет общий синтаксис SQL команды SELECT вместе с предложением LIKE для извлечения данных из таблицы MySQL.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Вы можете указать любое условие, используя предложение WHERE.
  • Вы можете использовать предложение LIKE вместе с предложением WHERE.
  • Вы можете использовать предложение LIKE вместо знак равенства.
  • Когда LIKE используется вместе с знаком%, он будет работать как метасимвольный поиск.
  • Вы можете указать несколько условий с использованием операторов AND или OR .
  • Предложение WHERE … LIKE может использоваться вместе с командой DELETE или UPDATE SQL также для указания условия.

Использование предложения LIKE в командной строке

Это будет использовать команду SQL SELECT с предложением WHERE … LIKE для извлечения выбранных данных из таблицы MySQL — 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>

Использование предложения LIKE в PHP Script

Вы можете использовать аналогичный синтаксис предложения 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);
?>