1.简单搜索条件
我们需要把搜索条件放在WHERE子句中,然后将WHERE子句放到FROM子句的后面。WHERE中支持的比较运算符有:
| 运算符 | 示例 | 描述 |
|---|---|---|
| = | a=b | 等于 |
| <=> | a<=>b | 等于 |
| <>或!= | a<>b | 不等于 |
| < | a<b | 小于 |
| <= | a<=b | 小于等于 |
| > | a>b | 大于 |
| >= | a>=b | 大于等于 |
| BETWEEN | a BETWEEN b AND c | a的值必须满足b<=a<=c |
| NOT BETWEEN | a NOT BETWEEN b AND c | a的值必须不满足b<=a<=c |
2.匹配列表中的元素
| 运算符 | 示例 | 描述 |
|---|---|---|
| IN | a IN (b1, b2, …) | a是b1,b2…中的某一个 |
| NOT IN | a NOT IN (b1, b2, …) | a不是b1,b2,…中的任意一个 |
3.匹配NULL
为某一列填入NULL意味着这一列的值尚未确定。在判断某一列的值是否为NULL的时候,并不能单纯地使用=运算符,而需使用专门判断列是否是NULL的运算符。
| 运算符 | 示例 | 描述 |
|---|---|---|
| IS NULL | a IS NULL | a的值是NULL |
| IS NOT NULL | a IS NOT NULL | a的值不是NULL |
4.多个搜索条件
_1.AND运算符
_2.OR运算符
_3.更复杂的搜索条件的组合AND优先级高于OR。为避免混乱,在一个查询中有多个搜索条件时,最好用小括号来显式地指定各个搜索条件的检测顺序。
如:SELECT * FROM student_score WHERE (score > 95 OR score < 55) AND subject = 'Mysql是怎样运行的';
_4.通配符
| 运算符 | 示例 | 描述 |
|---|---|---|
| LIKE | a LIKE b | a匹配b |
| NOT LIKE | a NOT LIKE b | a不匹配b |
既然我们不能完整描述要查询的信息,就用某个符号来替代这些模糊的信息,这个符号就称为通配符。MySQL支持下面这两个通配符。
(1).%:代表任意数量的字符,0个字符也可以
如:SELECT name FROM student_info WHERE name LIKE '狗%';
如:SELECT name FROM student_info WHERE name LIKE '%甘%';
(2)._:代表任意一个字符
通配符不能代表NULL,如需匹配NULL,则需使用IS NULL或IS NOT NULL。
_5.转义通配符
如果待匹配的字符串中本身就包含普通字符’%‘或者’_‘该咋办,如何区分它是一个通配符还是普通字符?
解决办法是在它们前面加一个反斜杠(\)来和通配符区分开来。即:
(1).’\%‘代表普通字符’%’
(2).‘\_‘代表普通字符’_’