首页 > 编程笔记 > MySQL笔记 阅读:10

MySQL WHERE子句的用法(附带实例)

MySQL 数据库中包含大量的数据,根据特殊要求,可能只需要查询表中的指定数据,即对数据进行过滤。

在 SELECT 语句中,通过 WHERE 子句可以对数据进行过滤,语法格式为:
SELECT 字段名1,字段名2,...,字段名n
FROM 表名
WHERE 查询条件
在 WHERE 子句中,MySQL 提供了一系列的条件判断符,如下表所示。


表:WHERE条件判断符
判断符 说明
= 相等
<> ,!= 不相等
< 小于
<= 小于或等于
> 大于
>= 大于或等于
BETWEEN 位于两值之间

为了方便演示 WHERE 子句的用法,需要往数据表插入如下数据:
mysql> INSERT INTO fruits (f_id, s_id, f_name, f_price)
       VALUES('a1', 101,'apple',5.2),
       ('b1',101,'blackberry', 10.2),
       ('bs1',102,'orange', 11.2),
       ('bs2',105,'melon',8.2),
       ('t1',102,'banana', 10.3),
       ('t2',102,'grape', 5.3),
       ('o2',103,'coconut', 9.2),
       ('c0',101,'cherry', 3.2),
       ('a2',103, 'apricot',2.2),
       ('l2',104,'lemon', 6.4),
       ('b2',104,'berry', 7.6),
       ('m1',106,'mango', 15.7),
       ('m2',105,'xbabay', 2.6),
       ('t4',107,'xbababa', 3.6),
       ('m3',105,'xxtt', 11.6),
       ('b5',107,'xxxx', 3.6);

【实例 1】查询价格为 10.2 元的水果的名称,SQL 语句如下:
SELECT f_name, f_price FROM fruits  WHERE f_price = 10.2;
该语句使用 SELECT 声明从表 fruits 中获取价格等于 10.2 元的水果的数据,查询结果如下:
+------------+---------+
| f_name     | f_price |
+------------+---------+
| blackberry | 10.20   |
+------------+---------+
从查询结果中可以看到,价格是 10.2 元的水果的名称是 blackberry,其他的均不满足查询条件。

本例采用了简单的相等过滤,查询指定列 f_price 中是否有值 10.20。相等过滤还可以用来比较字符串,下面给出一个例子。

【实例 2】查找名称为“apple”的水果的价格,SQL 语句如下:
SELECT f_name, f_price FROM fruits WHERE f_name = 'apple';
该语句使用 SELECT 声明从表 fruits 中获取名称为“apple”的水果的价格,查询结果如下:
+--------+---------+
| f_name | f_price |
+--------+---------+
| apple  | 5.20    |
+--------+---------+
从查询结果中可以看到,只有名称为“apple”的行被返回,其他的均不满足查询条件。

【实例 3】查询价格小于 10 元的水果的名称,SQL 语句如下:
SELECT f_name, f_price FROM fruits WHERE f_price < 10;
该语句使用 SELECT 声明从表 fruits 中获取价格低于 10 元的水果名称,即 f_price 小于 10 的水果信息被返回,查询结果如下:
+-----------+---------+
| f_name    | f_price |
+-----------+---------+
| apple     | 5.20    |
| apricot   | 2.20    |
| berry     | 7.60    |
| xxxx      | 3.60    |
| melon     | 8.20    |
| cherry    | 3.20    |
| lemon     | 6.40    |
| xbabay    | 2.60    |
| coconut   | 9.20    |
| grape     | 5.30    |
| xbababa   | 3.60    |
+-----------+---------+
可以看到,查询结果中所有记录的 f_price 字段的值均小于 10.00 元,而大于或等于 10.00 元的记录没有被返回。

相关文章