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

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

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

Чтобы выбирать данные с условиями из таблицы, можно добавить предложение WHERE в предложение SELECT.

Синтаксис

Ниже приведен общепринятый синтаксис предложения WHERE в предложении SELECT для чтения данных из таблицы.

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • В запросе можно использовать одну или несколько таблиц, таблицы разделены запятыми, и условия запроса устанавливаются с помощью предложения WHERE.

  • Вы можете указать любую условие в предложении WHERE.

  • Вы можете использовать AND или OR для указания одного или нескольких условий.

  • Предложение WHERE также можно использовать в командах SQL DELETE или UPDATE.

  • Предложение WHERE аналогично условному предложению в языках программирования, и используется для чтения指定 данных из полей таблицы MySQL.

Ниже приведен список операторов, которые можно использовать в предложении WHERE.

В таблице примеров предполагается, что A = 10, B = 20

ОператорОписаниеПример
=Эквивалент, проверяет, равны ли два значения, если они равны, возвращается true(A = B) возвращается false.
, !=Не равно, проверяет, равны ли два значения, если они не равны, возвращается true(A != B) возвращается true.
>Больше чем, проверяет, больше ли левая сторона правой стороне, если левая сторона больше правой стороны, возвращается true(A > B) возвращается false.
<Меньше чем, проверяет, меньше ли левая сторона правой стороне, если левая сторона меньше правой стороны, возвращается true(A < B) возвращается true.
>=Неравенство >=, проверяет, является ли левая часть больше или равна правой части, если левая часть больше или равна правой части, возвращает true(A >= B) возвращает false.
<=Неравенство <=, проверяет, является ли левая часть меньше или равна правой части, если левая часть меньше или равна правой части, возвращает true(A <= B) возвращает true.

Если мы хотим читать определенные данные из таблицы MySQL, подзапрос WHERE очень полезен.

Использование главного ключа в качестве условия запроса WHERE очень быстро.

Если данные, соответствующие данному условию, отсутствуют в таблице, запрос не вернет никаких данных.

Чтение данных из командной строки

Мы будем использовать подзапрос WHERE в операторе SQL SELECT, чтобы читать данные из таблицы MySQL w3codebox_tbl:

Пример

Следующий пример будет читать все записи из таблицы w3codebox_tbl, где значение поля w3codebox_author равно Sanjay:

SELECT    *    from    w3codebox_tbl    WHERE    w3codebox_author='Основной учебник';

Результат вывода:

Строковое сравнение подзапроса WHERE в MySQL не различает регистр. Вы можете использовать ключевое слово BINARY, чтобы определить, что строковое сравнение в подзапросе WHERE будет отличаться по регистру.

Следующий пример:

Ключевое слово BINARY

mysql>    SELECT    *    from    w3codebox_tbl    WHERE    BINARY    w3codebox_author='oldtoolbag.com';
Пустой набор (0.01 сек)
 
mysql>    SELECT    *    from    w3codebox_tbl    WHERE    BINARY    w3codebox_author='oldtoolbag.com';
+----------+-------------+--------------+-----------------+
|    w3codebox_id    |    w3codebox_title    |    w3codebox_author    |    submission_date    |
+----------+-------------+--------------+-----------------+
|                 1    |    УЧЕБА PHP             |    oldtoolbag.com              |    2018-04-14              |
|                 2    |    УЧЕБА MySQL          |    oldtoolbag.com              |    2018-04-14              |
|                 3    |    JAVA УЧЕБНИК          |    oldtoolbag.com              |    2018-04-14              |
+----------+-------------+--------------+-----------------+
3 rows in set (0.00 sec)

В примере используется BINARY Ключевые слова чувствительны к регистру, поэтому w3codebox_author='oldtoolbag.com' Условие запроса не содержит данных.

Чтение данных с помощью сценария PHP

Вы можете использовать функцию mysqli_query() и аналогичный SQL SELECT с условием WHERE для получения данных.

Эта функция используется для выполнения SQL-команды и вывода всех данных запроса с помощью функции mysqli_fetch_array() в PHP.

Онлайн пример

Ниже приведен пример, который вернет записи из таблицы w3codebox_tbl с полем w3codebox_author равным oldtoolbag.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");
 
// Чтение данных с w3codebox_author равным oldtoolbag.com
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        WHERE w3codebox_author="oldtoolbag.com"';
 
mysqli_select_db($conn, 'w3codebox');
$retval = mysqli_query($conn, $sql);
if (!$retval)
{
    die('Не удалось прочитать данные: ' . mysqli_error($conn));
}
echo '<h2>Тест WHERE условия MySQL учебника основы<h2>';
echo '<table border="1"><tr><td>ID учебника</td><td>Заголовок</td><td>Автор</td><td>Дата submissions</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_free_result($retval);
mysqli_close($conn);
?>

Результат вывода будет выглядеть следующим образом: