0
点赞
收藏
分享

微信扫一扫

【大数据系列之MySQL】(十三):MySQL模糊查询


MySQL中给出了4个关键字来实现模糊查询,分别是:

like
betewwn and
in
is null(is not null)

1.like用法

like通常与通配符(​​_​​​,​​%​​)一起使用,用于模糊查询数据

例1:查询员工名中包含字符a的员工信息

SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%';

其中 ​​%​​ 这个字符是通配符,代表任意数据,可以为空

例2:查询员工名字第二个字符为a的员工信息

SELECT
*
FROM
employees
WHERE
last_name LIKE '_a%';

其中 ​​_​​​ 也是通配符,代表占位符,可以指代一个字符用于占位,如果我们希望数据中存在 ​​%​​​ 和 ​​_​​ 这两个字符,只需要进行转义即可:

例3:查询名字中以 _ 结尾的员工信息

由于我们的数据中存在通配符,所以此时需要进行转义,利用反斜线

# 写法一
SELECT
*
FROM
employees
WHERE
last_name LIKE '%\_';

# 写法二,利用ESCAPE关键字指定转义字符,下面的$可以换成任意字符
SELECT
*
FROM
employees
WHERE
last_name LIKE '%$_' ESCAPE '$';

2.between and用法

这个查询是用于获得数值落在某个区间的数据信息,between and是包含区间值的

例1:查询员工编号在100到120之间的员工信息

# 写法一
SELECT
*
FROM
employees
WHERE
employee_id >= 100
AND employee_id <= 120;

# 写法二
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100
AND 120;

3.in关键字

MySQL中的in和Python中的in关键字是一样的,都是判断给定内容是否存在另外一个集合当中,MySQL当中就是如果存在则返回true,对应的记录返回。

例1:获取红色的花或者蓝色的花

# 方式一:使用逻辑或
SELECT
*
FROM
TABLE
WHERE
flower = 'red'
OR flower = 'blue';

# 方式二:使用关键字in
SELECT
*
FROM
TABLE
WHERE
flower IN ( 'red', 'blue' );

4.is null用法

在很多情景中,我们想要查出某字段为空的记录,所以很容易写出下面的方式:

SELECT
*
FROM
employees
WHERE
commission_pct = NULL;

这种写法是错误的,因为MySQL中的等号不能够判断NULL,只能通过关键字 is null来判断是否为空

# 正确写法
SELECT
*
FROM
employees
WHERE
commission_pct IS NULL;

5.安全等于<=>

对于MySQL对null空类型是无法使用条件运算符进行比较的,要判断null就需要使用关键字is null,为了将这二者结合,提出了安全等于,就是可以用它判断数值信息是否相等或者是否为空。

SELECT
*
FROM
employees
WHERE
commission_pct <=> NULL;


举报

相关推荐

0 条评论