MySQL数据过滤和通配符过滤.md
2017-06-23 13:28
309 查看
第七章 数据过滤
1 组合WHERE子句
11 AND操作符
12 OR操作符
13 计算次序
2 IN操作符
3 NOT操作符
第八章 用通配符进行过滤
1 LIKE操作符
11 百分号通配符
12 下划线_通配符
2 使用通配符技巧
7.1 组合
MySQL允许使用多个
1. 以
2. 以
7.1.1
为了通过不止一个列进行过滤,可以使用
分析,此语句检索出供应商为1003且价格小于等于*10的产品名称和价格。
7.1.2
从字意可以理解为,指示mysql检索匹配任一条件的行。例如,
-注意,在任何时候具有
7.2
分析,
使用
1. 在使用长的合法清单时,
2. 计算次序更容易管理;
3.
4. 最大优点是可以执行其他
7.3
8.1
通配符,用来匹配值的一部分特色符号。
搜索模式,由字面值、通配符或两者组合成的搜索条件。
在SQL中使用通配符,必须使用
例如找到所有含有jet的产品,
或者,寻找以s开头e结尾的产品,
注意,字符串尾部可能包含空格,使用单一%无法匹配。可以通过添加尾部%,更好的办法是使用函数去掉收尾空格。
若使用%字符,
在确定需要使用通配符,除非必要,否则不将他们用在搜索模式的开始处(尽量避免);
仔细注意通配符的位置。
1 组合WHERE子句
11 AND操作符
12 OR操作符
13 计算次序
2 IN操作符
3 NOT操作符
第八章 用通配符进行过滤
1 LIKE操作符
11 百分号通配符
12 下划线_通配符
2 使用通配符技巧
第七章 数据过滤
使用WHERE子句建立更高级的搜索条件,并且使用
NOT和
IN操作符
7.1 组合WHERE
子句
MySQL允许使用多个WHERE子句,使用方式为,
1. 以
AND子句的形式;
2. 以
OR子句的形式。
7.1.1 AND
操作符
为了通过不止一个列进行过滤,可以使用AND操作符。
mysql> SELECT prod_id, prod_price, prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10; +---------+------------+----------------+ | prod_id | prod_price | prod_name | +---------+------------+----------------+ | FB | 10.00 | Bird seed | | FC | 2.50 | Carrots | | SLING | 4.49 | Sling | | TNT1 | 2.50 | TNT (1 stick) | | TNT2 | 10.00 | TNT (5 sticks) | +---------+------------+----------------+
分析,此语句检索出供应商为1003且价格小于等于*10的产品名称和价格。
7.1.2 OR
操作符
从字意可以理解为,指示mysql检索匹配任一条件的行。例如,mysql> SELECT prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003; +----------------+------------+ | prod_name | prod_price | +----------------+------------+ | Detonator | 13.00 | | Bird seed | 10.00 | | Carrots | 2.50 | | Fuses | 3.42 | | Oil can | 8.99 | | Safe | 50.00 | | Sling | 4.49 | | TNT (1 stick) | 2.50 | | TNT (5 sticks) | 10.00 | +----------------+------------+
7.1.3 计算次序
WHERE可包含任意数目的
AND和
OR操作符。
-注意,在任何时候具有
AND和
OR的子句中,都应该使用圆括号明确地分组操作,不可以过分依赖默认计算次序。
7.2 IN
操作符
IN操作符圆括号在
WHERE中的另外一种用法,
IN操作符用来指定条件范围。取的合法值都需要由逗号分割的清单,全部括在圆括号中。例如,
mysql> SELECT prod_name, prod_price FROM products WHERE vend_id IN (1002, 1003) ORDER BY prod_name; +----------------+------------+ | prod_name | prod_price | +----------------+------------+ | Bird seed | 10.00 | | Carrots | 2.50 | | Detonator | 13.00 | | Fuses | 3.42 | | Oil can | 8.99 | | Safe | 50.00 | | Sling | 4.49 | | TNT (1 stick) | 2.50 | | TNT (5 sticks) | 10.00 | +----------------+------------+
分析,
IN的作用与
OR相同。
使用
IN操作符优点如下,
1. 在使用长的合法清单时,
IN操作符更加清晰且直观;
2. 计算次序更容易管理;
3.
IN一般比
OR执行更快;
4. 最大优点是可以执行其他
SELECT语句,即嵌套语句。
7.3 NOT
操作符
NOT操作符,用来否定之后的任何条件,纵使前面过滤中会显示。
第八章 用通配符进行过滤
介绍使用通配符及LIKE操作符进行统配搜索
8.1 LIKE
操作符
通配符,用来匹配值的一部分特色符号。搜索模式,由字面值、通配符或两者组合成的搜索条件。
在SQL中使用通配符,必须使用
LIKE操作符。
8.1.1 百分号(%)通配符
在搜索串中,&表示任何字符出现任意次数,可以出现在搜索模式的任意位置。例如找到所有以jet开头的产品,mysql> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%'; +---------+--------------+ | prod_id | prod_name | +---------+--------------+ | JP1000 | JetPack 1000 | | JP2000 | JetPack 2000 | +---------+--------------+
例如找到所有含有jet的产品,
mysql> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '%anvil%'; +---------+--------------+ | prod_id | prod_name | +---------+--------------+ | ANV01 | .5 ton anvil | | ANV02 | 1 ton anvil | | ANV03 | 2 ton anvil | +---------+--------------+
或者,寻找以s开头e结尾的产品,
mysql> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 's%e'; +---------+-----------+ | prod_id | prod_name | +---------+-----------+ | SAFE | Safe | +---------+-----------+
注意,字符串尾部可能包含空格,使用单一%无法匹配。可以通过添加尾部%,更好的办法是使用函数去掉收尾空格。
8.1.2 下划线(_)通配符
下划线(_)通配符,只能匹配单个字符而不是多个。mysql> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil'; +---------+-------------+ | prod_id | prod_name | +---------+-------------+ | ANV02 | 1 ton anvil | | ANV03 | 2 ton anvil | +---------+-------------+
若使用%字符,
mysql> SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '% ton anvil'; +---------+--------------+ | prod_id | prod_name | +---------+--------------+ | ANV01 | .5 ton anvil | | ANV02 | 1 ton anvil | | ANV03 | 2 ton anvil | +---------+--------------+
8.2 使用通配符技巧
不要过度使用。如果能用其他操作符达到目的,不应该使用通配符。在确定需要使用通配符,除非必要,否则不将他们用在搜索模式的开始处(尽量避免);
仔细注意通配符的位置。
相关文章推荐
- MySQL通配符过滤数据
- MySQL过滤数据.md
- mysql过滤数据(三)用通配符进行过滤
- MySQL--操作简记(where过滤,通配符过滤数据)
- MySQL学习足迹记录06--数据过滤--LIKE搭配百分号(%)和下划线(_)通配符
- MySQL学习4 数据过滤
- MySQL实践-数据分组和过滤
- mysql过滤数据(二)
- MySQL(二)数据的检索和过滤
- MYSQL必知必会读书笔记 第九章 使用正则表达式过滤数据
- MYSQL使用正则表达式过滤数据
- Mysql必知必会(笔记)【高级数据过滤、通配符进行过滤】
- SQL 3.高级数据过滤 - 1 通配符过滤
- MySQL过滤数据
- 【MySql】过滤数据where语句
- MYSQL 过滤数据 学习笔记
- MySQL学习足迹记录05--数据过滤--AND,OR,NOT,IN
- MySQL学习足迹记录04--数据过滤--WHERE
- MySQL入门-5:数据过滤