English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Мы знаем, как использовать предложение 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 будет отличаться по регистру.
Следующий пример:
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' Условие запроса не содержит данных.
Вы можете использовать функцию 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); ?>
Результат вывода будет выглядеть следующим образом: