在数据库应用中,有时候我们仅记得字段的部分内容,为了查询得到相应的数据,我们需要采用模糊匹配的方式进行查找。这个时候like
就派上用场了。一般在模糊匹配中like
与%
或者_
一起使用.
1.like
搭配 %
使用。包含%
,则表示%
位置可以是任意内容(包括内容为空的情况)
示例student表数据
-
%
在字符串之后,表示查找字段以字符串开头。
SELECT `id`,`name` FROM `student` WHERE `name` like 'test%';
本语句查找name字段以test开头,结果如下:
name以test开头
-
%
在字符串之前,表示查找字段以字符串结尾。
SELECT `id`,`name` FROM `student` WHERE `name` like 'test%';
本语句查找name字段以test结尾,结果如下:
name以test结尾
- 字符串包含多个
%
。
SELECT `id`,`name` FROM `student` WHERE `name` like '%test%';
本语句查找name字段包含test,结果如下:
name包含test
SELECT `id`,`name` FROM `student` WHERE `name` LIKE '%te%st%'
本语句查找name字段包含te和st,且te在st之前
name字段包含te和st,且te在st之前
2.like
搭配 _
使用。在_
的位置只能出现一个字符且必须出现一个字符才能匹配。如果要多个字符则需要写多个_
SELECT `id`,`name` FROM `student` WHERE `name` LIKE 'test_'
本语句查找name字段包含以test开头的五个字符
name字段包含以test开头的五个字符
SELECT `id`,`name` FROM `student` WHERE `name` LIKE 'test___'
本语句查找name字段包含以test开头的八个字符
name字段包含以test开头的八个字符
3.like
语句中包含 %或_ 作为查询条件,而非通配符。则需要加转义符\
,默默体会下面两个语句吧
SELECT `id`,`name` FROM `student` WHERE `name` LIKE 'test_%';
SELECT `id`,`name` FROM `student` WHERE `name` LIKE 'test\_%';
name like 'test_%'查询结果
name like 'test_%'查询结果
小结:用通配符来模糊查询很方便,但是过多的使用会导致查询效率低下,具体需要视实际情况而定。