Каталог статей
Как использовать условие WHERE в MySQL ? Синтаксис для нескольких условий в условии WHERE.
MySQL ГДЕ пункт
Мы знаем, как использовать оператор SQL SELECT для чтения данных из таблицы MySQL.
Чтобы условно выбрать данные из таблицы, добавьте предложение WHERE в инструкцию SELECT.
грамматика
Ниже приведен общий синтаксис оператора SQL SELECT для чтения данных из таблицы данных с использованием предложения WHERE:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
- Вы можете использовать одну или несколько таблиц в операторе запроса, используя запятые между таблицами., Разделите и используйте оператор WHERE для задания условий запроса.
- Вы можете указать любое условие в предложении WHERE.
- Вы можете указать одно или несколько условий, используя И или ИЛИ.
- Предложение WHERE также можно использовать с командами SQL DELETE или UPDATE.
- Предложение WHERE похоже на условие if в процедурных языках и считывает указанные данные в соответствии со значением поля в таблице MySQL.
Ниже приведен список операторов, которые можно использовать в предложении WHERE.
Примеры в таблице ниже предполагают, что A равно 10, а B равно 20.
| оператор | Описание | Пример |
|---|---|---|
| = | Знак равенства, проверяет, равны ли два значения, и возвращает true, если они равны | (A = B) возвращает ложь. |
| <>,! = | Не равно, проверить, равны ли два значения, вернуть true, если они не равны | (A != B) возвращает истину. |
| > | Больше, чем знак, проверьте, больше ли значение слева, чем значение справа, если значение слева больше, чем значение справа, верните true | (A > B) возвращает ложь. |
| < | Меньше знака, проверьте, меньше ли значение слева, чем значение справа, если значение слева меньше, чем значение справа, верните true | (A < B) возвращает истину. |
| >= | Знак «больше» или «равно», проверьте, больше ли значение слева или равно значению справа, если значение слева больше или равно значению справа, верните true | (A >= B) возвращает ложь. |
| <= | Знак "меньше" или "равно", проверьте, меньше ли значение слева значению справа или равно ему, если значение слева меньше или равно значению справа, верните true | (A <= B) возвращает истину. |
Предложение WHERE очень полезно, если мы хотим прочитать указанные данные из таблицы данных MySQL.
Использование первичного ключа в качестве условного запроса в предложении WHERE выполняется очень быстро.
Если заданным критериям нет соответствующих записей в таблице, запрос не возвращает данных.
читать данные из командной строки
Мы будем использовать предложение WHERE в операторе SQL SELECT для чтения данных в таблице данных MySQL chenweiliang_tbl:
Пример
В следующем примере будут прочитаны все записи в таблице chenweiliang_tbl, где значением поля chenweiliang_author является Sanjay:
Предложение SQL SELECT WHERE
Сравнение строк в предложении MySQL WHERE не зависит от регистра.Вы можете использовать ключевое слово BINARY, чтобы указать, что сравнения строк в предложении WHERE чувствительны к регистру.
Следующий пример:
ДВОИЧНОЕ ключевое слово
mysql> SELECT * from chenweiliang_tbl WHERE BINARY chenweiliang_author='chenweiliang.com'; Empty set (0.01 sec) mysql> SELECT * from chenweiliang_tbl WHERE BINARY chenweiliang_author='chenweiliang.com'; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | JAVA 教程 | chenweiliang.com | 2016-05-06 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | +-----------+---------------+---------------+-----------------+ 2 rows in set (0.01 sec)
В примере используется ключевое слово BINARY , которое чувствительно к регистру, поэтому условие запроса chenweiliang_author='chenweiliang.com' не возвращает данных.
Чтение данных с помощью PHP-скрипта
Вы можете использовать функцию PHP mysqli_query() и ту же команду SQL SELECT с предложением WHERE для получения данных.
Эта функция используется для выполнения команд SQL и последующего вывода всех запрошенных данных через функцию PHP mysqli_fetch_array().
Пример
Следующий пример вернет записи из таблицы chenweiliang_tbl, в которых значение chenweiliang_author в таблице chenweiliang_tbl равно chenweiliang.com :
Проверка предложения MySQL WHERE:
<?
php
$dbhost = 'localhost:3306'; // 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");
// 读取 chenweiliang_author 为 chenweiliang.com 的数据
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl
WHERE chenweiliang_author="chenweiliang.com"';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 MySQL WHERE 子句测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>Надеюсь, статья «Как использовать условие WHERE в MySQL? Синтаксис множественных условий в условии WHERE», опубликованная в блоге Чен Вэйляна ( https://www.chenweiliang.com/ ), окажется для вас полезной.
Не стесняйтесь делиться ссылкой на эту статью: https://www.chenweiliang.com/cwl-462.html
