先给出一张表,我们看下下面这张表的app_ids,里面出现一些重复值。

MySql中的FIND_IN_SET使用方法,满足包含查询,类似like但是不同于like的用法

现在需要查询app_ids包含111或者查询包含70的所有符合条件的记录。

在mysql中instr的函数语法是:INSTR(字段名,字符名)。该函数返回字符串在某一个字段的内容中的位置,没有找到字符串返回0,

MySql中的FIND_IN_SET使用方法,满足包含查询,类似like但是不同于like的用法

这个可以查询出所有包含111字段的记录。同时这个还支持模糊查询,也可以查询所有包含1或者别的字符串的字段。

再来看一下FIND_IN_SET(str,strlist)这个函数的用法。

如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值,一个字符串表是被“,”分隔的子串组成的一个字符串。

如果第一个参数是一个常数字符串并且第二个参数是以一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算。

如果str不是在strlist里面或者strlist是空字符串,返回0。如果很任何一个参数是NULL,返回NULL,如果第一个参数包含一个“,”,

该函数不能正常工作。同时该函数不会像INSTR一样,支持模糊查询。

MySql中的FIND_IN_SET使用方法,满足包含查询,类似like但是不同于like的用法

在进行模糊查询时,INSTR函数是支持的,现在查询出app_ids中所有带8的记录。FIND_IN_SET更适合精确查询。

MySql中的FIND_IN_SET使用方法,满足包含查询,类似like但是不同于like的用法

这两个函数主要是用来支持某个字段中有多个值,需要查找某个精确值等。


相关文章: