mysql 查询数字是否包含在字符串中
例如表t1中有个字段A的值为字符串,字符串格式为以逗事分隔的数字,例如:值1:2,5,23,85,118值2:6,9,12,185值3为:85,36值4:85值5:9,8...
例如表t1中有个字段A的值为字符串,字符串格式为以逗事分隔的数字,例如:
值1:2,5,23,85,118 值2:6,9,12,185 值3为:85,36 值4:85 值5: 9,85
当查询85是否包含在字段A中时,返回值1 、值3、值4,值5,但不返回值2
SQL语句怎么写。不知道除了用like可以实现外,有没有其它效率更高的方法。 展开
值1:2,5,23,85,118 值2:6,9,12,185 值3为:85,36 值4:85 值5: 9,85
当查询85是否包含在字段A中时,返回值1 、值3、值4,值5,但不返回值2
SQL语句怎么写。不知道除了用like可以实现外,有没有其它效率更高的方法。 展开
1个回答
展开全部
mysql有专门的函数实现你需要的功能:
FIND_IN_SET(str,strlist)
如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
返回值2
FIND_IN_SET(str,strlist)
如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
返回值2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询