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

Предложение LIKE MySQL

Мы знаем, что в 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 для указания условий.

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

Ниже мы используем 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)

Использование LIKE подзапроса в PHP скрипте

Вы можете использовать функцию 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);
?>

Результат вывода показан на рисунке ниже: