首页 > 编程笔记

MySQL FIND_IN_SET()函数的用法

FIND_IN_SET() 函数返回某个字符串在字符串列表中出现的位置,字符串列表是一个由多个逗号“,”分开的字符串组成的列表。

FIND_IN_SET() 函数的基本语法如下:
FIND_IN_SET(s1, s2)

如果 s1 不在 s2 中或 s2 为空字符串,则返回值为 0。如果任意一个参数为 NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号“,”的情况下,将无法正常运行。

【实例】使用 FIND_IN_SET() 函数返回子字符串在字符串列表中的位置,输入语句如下:
mysql> SELECT FIND_IN_SET('Hi','hihi,Hey,Hi,bas');
+---------------------------------------------+
| FIND_IN_SET('Hi','hihi,Hey,Hi,bas')        |
+---------------------------------------------+
|                         3            |
+---------------------------------------------+

以下又列举了一些使用 FIND_IN_SET() 函数的例子:
SELECT FIND_IN_SET('a', 'a,b,c,d'); -- 结果为 1,因为'a'是列表中的第一个元素
SELECT FIND_IN_SET('b', 'a,b,c,d'); -- 结果为 2
SELECT FIND_IN_SET('d', 'a,b,c,d'); -- 结果为 4
SELECT FIND_IN_SET('e', 'a,b,c,d'); -- 结果为 0,因为'e'不在列表中
SELECT FIND_IN_SET('a', 'b,c,d');    -- 结果为 0,因为'a'不在列表中
FIND_IN_SET() 函数在处理类似分类标签或权限列表的场景中非常有用,尤其是当你需要检查一个特定的项是否存在于一个逗号分隔的字符串中时。这个函数可以快速地帮助你定位一个字符串在列表中的位置。

推荐阅读