English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Мы знаем, что в MySQL используется команда SQL SELECT для чтения данных. Мы можем использовать предложение WHERE в SELECT-запросе, чтобы получить необходимые записи.
WHERE-предложение может использовать знак = для установления условий получения данных, например "w3codebox_author = 'oldtoolbag.com'".
Иногда нам нужно получить все записи из поля w3codebox_author, содержащие "COM", и в этом случае мы используем SQL LIKE в WHERE-предложении.
В SQL LIKE используется символ % для обозначения任意 символов, как в UNIX или регулярных выражениях.
Если не используется символ %, LIKE действует так же, как и знак =.
Ниже приведена общая грамматика SQL SELECTstatements с использованием LIKE в чтении данных из таблицы.
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
Вы можете指定 любые условия в WHERE-предложении.
Вы можете использовать LIKE в WHERE-предложении.
Вы можете использовать LIKE вместо равенства =.
LIKE обычно используется с %, как метасимвол для поиска.
Вы можете использовать AND или OR для указания одного или нескольких условий.
Вы можете использовать WHERE...LIKE в командах DELETE или UPDATE для указания условий.
Ниже мы используем WHERE...LIKE в SQL SELECT命令 для чтения данных из таблицы MySQL w3codebox_tbl.
Ниже мы покажем все записи из поля w3codebox_author таблицы w3codebox_tbl, заканчивающиеся на 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)
Вы можете использовать функцию mysqli_query() и соответствующий SQL SELECT с WHERE...LIKE подзапросом для получения данных.
Эта функция используется для выполнения SQL-команды, а затем вывода всех данных с помощью PHP функции mysqli_fetch_array().
Но если использовать WHERE...LIKE подзапрос в SQL命令ах DELETE или UPDATE, то не нужно использовать функцию 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>Учебник основ MySQL 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); ?>
Результат вывода показан на рисунке ниже: