mysql使用--带搜索条件的查询

1.简单搜索条件
我们需要把搜索条件放在WHERE子句中,然后将
WHERE子句放到FROM子句的后面。
WHERE中支持的比较运算符有:

运算符 示例 描述
= a=b 等于
<=> a<=>b 等于
<>或!= a<>b 不等于
< a 不等于
<= 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).‘_‘代表普通字符’_’

你可能感兴趣的:(5.2.数据库--MySql,带搜索条件的查询)