作者:要去治病啊8_r | 来源:互联网 | 2024-11-11 17:00
FIND_IN_SET()函数用于检查一个字符串是否存在于由逗号分隔的字符串列表中。其语法为:FIND_IN_SET(str,strlist)。该函数返回一个整数值,表示字符串str在字符串列表strlist中的位置。如果str存在于strlist中,则返回值范围从1到N(N为列表中的元素数量)。若未找到,则返回0。此函数在处理多值字段时非常有用,例如在查询用户权限或标签匹配等场景中。
语法:FIND_IN_SET(str,strlist)
定义:
1). 假如字符串 str 在由N子链组成的字符串列表 strlist 中,则返回值的范围在1到N之间。
2). 一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。
3). 如果第一个参数是一个常数字符串,而第二个是typeSET列,则FIND_IN_SET()函数被优化,使用比特计算。
4). 如果 str 不在 strlist 或 strlist 为空字符串,则返回值为 0。
5). 如任意一个参数为 NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
strlist:一个由英文逗号“,”链接的字符串,例如:"a,b,c,d",该字符串形式上类似于SET类型的值被逗号给链接起来。
示例:SELECT FIND_IN_SET('b','a,b,c,d'); //返回值为2,即第2个值
//查询 9824 该值是否在 community_id 字段列中存在
SELECT * FROM `cc_stop_gas_notice`
WHERE FIND_IN_SET('9824',`cc_stop_gas_notice`.`community_id`)