MYSQL使用之过滤数据
1、使用WHERE子句
SELECT name,price FROM use_name WHERE price = 5 ;
返回price值为5的行。
SELECT id,price FROM use_name WHERE id != 10 ;
SELECT name,price FROM use_name WHERE price >= 50 ;
SELECT name,price FROM use_name WHERE price BETWEEN 50 AND 100;
SELECT name,price FROM use_name WHERE price IS NULL;
2、WHERE子句操作符
操作符 | 说明 |
---|---|
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
BETWEEN | 在指定的两个值之间 |
3、AND操作符
SELECT id,name,price FROM use_name WHERE id = 10 AND price >= 50 ;
- 可以添加多个过滤条件,每添加一条就要使用一个AND。
- AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。
4、OR操作符
SELECT id,name,price FROM use_name WHERE id = 10 OR id = 20 ;
OR WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。
SELECT id,name,price FROM use_name WHERE (id = 10 OR id = 20) AND price >= 50 ;
- 圆括号具有较AND或OR操作符高的计算次序,优先过滤圆括号内的OR条件,再过滤AND条件。
- 任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。
5、IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。
SELECT id,name,price FROM use_name WHERE id IN (10,20) ORDER BY name;
此SELECT语句检索值为10和20所有数据。IN操作符后跟由逗号分隔的合法值清单,整个清单必须括在圆括号中。
IN WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。
IN操作符一般比OR操作符清单执行更快。
6、NOT操作符
WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。
SELECT id,name,price FROM use_name WHERE id NOT IN (10,20) ORDER BY name;
此SELECT语句不匹配值为10和 20 的 id。
7、用通配符进行过滤——LIKE操作符
(1)百分号(%)通配符
SELECT id,name,price FROM use_name WHERE name LIKE 'chena%' ;
在执行这条子句时,将检索任意以chena起头的词。
可以使用多个通配符:SELECT id,name,price FROM use_name WHERE name LIKE '%sena%' ;
搜索模式’%sena%'表示匹配任何位置包含文本sena的值,而不论它之前或之后出现什么字符。