MySQL学习-运算符(五)

156 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天,点击查看活动详情

前言

上篇我们学习了一部分比较运算符,有兴趣的小伙伴可以阅读(# MySQL学习-运算符(四))。
下面继续学习MySQL中的运算符

比较运算符

LIKE

LIKE模糊运算符

运算符示例一

查询表格中姓名包含字符'x'的小朋友信息

SELECT name
FROM Test
WHERE name LIKE 'x'
name

可以看到什么结果都没有查出来,这里相当于等于运算符。要想查出包含的结果,需要再字符'x'的前后加上%。

运算符示例二

查询表格中姓名包含字符'x'的小朋友信息

SELECT name
FROM Test
WHERE name LIKE '%x%'
name
xiaojun
xiaoming
xiaojuan
xiaoli
xiaohua

使用%就可以查出姓名包含字符'x'的小朋友信息。同时%表示的是:代表不确定个数的字符,包含0个字符。

运算符示例三

如果字符'x'前面的%去掉,代表什么呢,我们运行以下示例:

SELECT name
FROM Test
WHERE name LIKE 'x%'
name
xiaojun
xiaoming
xiaojuan
xiaoli
xiaohua

这里可以查出姓名以字符'x'开头的小朋友信息。如果把字符'x'后面的%去掉,就代表查询姓名以字符'x'结尾的小朋友信息。

运算符示例四

查询表格中姓名包含字符'x'且包含字符'j'的小朋友信息。

写法1

SELECT name
FROM Test
WHERE name LIKE '%x%' AND name LIKE '%j%'
name
xiaojun
xiaojuan

写法2

SELECT name
FROM Test
WHERE name LIKE '%x%%j%' OR name LIKE '%j%%x%'
name
xiaojun
xiaojuan

上面这种写法也可以查出同样的结果。

运算符示例五

查询表格中姓名第2个字符是'i'的小朋友信息,这里需要使用字符'_',代表一个不确定的字符。

SELECT name
FROM Test
WHERE name LIKE '_i%'
name
xiaojun
xiaoming
xiaojuan
xiaoli
xiaohua

这里看到查出了姓名第2个字符是'i'的小朋友信息。 如果在字符'i'前再多加一个字符'_',那代表查询表格中姓名第3个字符是'i'的小朋友信息。

运算符示例六

如果姓名中包含字符''怎么办呢?看以下示例: 查询表格中姓名第2个字符是''并且第3个字符是'i'的小朋友信息

SELECT name
FROM Test
WHERE name LIKE '__i%'
name
x_iaojun
xiiaoming

可以看到还查出了xiiaoming的结果,显然是不对的,这里需要加入转义字符”\“

SELECT name
FROM Test
WHERE name LIKE '_\i%'
name
x_iaojun

这样就查出了正确的结果。

今天先学到这里,明天继续。