暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL WHERE 子句

张静懿 2025-03-29
15

https://www.runoob.com/mysql/mysql-where-clause.html

我们知道从 MySQL 表中使用 SELECT 语句来读取数据。

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。

WHERE 子句用于在 MySQL 中过滤查询结果,只返回满足特定条件的行。

语法

以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition;
复制

参数说明:

  • column1column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  • table_name 是你要从中查询数据的表的名称。
  • WHERE condition 是用于指定过滤条件的子句。

更多说明:

  • 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的 if 条件,根据 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。

简单实例

1. 等于条件:

SELECT * FROM users WHERE username = 'test';
复制

2. 不等于条件:

SELECT * FROM users WHERE username != 'runoob';
复制

3. 大于条件:

SELECT * FROM products WHERE price > 50.00;
复制

4. 小于条件:

SELECT * FROM orders WHERE order_date < '2023-01-01';
复制

5. 大于等于条件:

SELECT * FROM employees WHERE salary >= 50000;
复制

6. 小于等于条件:

SELECT * FROM students WHERE age <= 21;
复制

7. 组合条件(AND、OR):

SELECT * FROM products WHERE category = 'Electronics' AND price > 100.00;

SELECT * FROM orders WHERE order_date >= '2023-01-01' OR total_amount > 1000.00;
复制

8. 模糊匹配条件(LIKE):

SELECT * FROM customers WHERE first_name LIKE 'J%';
复制

9. IN 条件:

SELECT * FROM countries WHERE country_code IN ('US', 'CA', 'MX');
复制

10. NOT 条件:

SELECT * FROM products WHERE NOT category = 'Clothing';
复制

11. BETWEEN 条件:

SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
复制

12. IS NULL 条件

SELECT * FROM employees WHERE department IS NULL;
复制

13. IS NOT NULL 条件:

SELECT * FROM customers WHERE email IS NOT NULL;
复制

如果我们想在 MySQL 数据表中读取指定的数据,WHERE 子句是非常有用的。

使用主键来作为 WHERE 子句的条件查询是非常快速的。

如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论