mysql使用like模糊匹配

在数据库应用中,有时候我们仅记得字段的部分内容,为了查询得到相应的数据,我们需要采用模糊匹配的方式进行查找。这个时候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_%'查询结果

小结:用通配符来模糊查询很方便,但是过多的使用会导致查询效率低下,具体需要视实际情况而定。

你可能感兴趣的:(mysql使用like模糊匹配)