Мы увидели команду 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);
?>