MySQL WHERE子句的用法(附带实例)
MySQL 数据库中包含大量的数据,根据特殊要求,可能只需要查询表中的指定数据,即对数据进行过滤。
在 SELECT 语句中,通过 WHERE 子句可以对数据进行过滤,语法格式为:
为了方便演示 WHERE 子句的用法,需要往数据表插入如下数据:
【实例 1】查询价格为 10.2 元的水果的名称,SQL 语句如下:
本例采用了简单的相等过滤,查询指定列 f_price 中是否有值 10.20。相等过滤还可以用来比较字符串,下面给出一个例子。
【实例 2】查找名称为“apple”的水果的价格,SQL 语句如下:
【实例 3】查询价格小于 10 元的水果的名称,SQL 语句如下:
在 SELECT 语句中,通过 WHERE 子句可以对数据进行过滤,语法格式为:
SELECT 字段名1,字段名2,...,字段名n FROM 表名 WHERE 查询条件在 WHERE 子句中,MySQL 提供了一系列的条件判断符,如下表所示。
判断符 | 说明 |
---|---|
= | 相等 |
<> ,!= | 不相等 |
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
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 元的记录没有被返回。