FIND_IN_SET() 是 MySQL 函数,它用于在一个以逗号分隔的字符串列表中查找一个特定值的位置
FIND_IN_SET() 函数的语法如下:
FIND_IN_SET(value, set_string)
其中,value 是要在 set_string 中查找的值,set_string 是包含逗号分隔的值列表的字符串。
以下是一个使用 FIND_IN_SET() 函数的示例:
假设我们有一个名为 students 的表,其中包含学生的 ID、姓名和课程列表(以逗号分隔)。
| id | name | courses |
|---|---|---|
| 1 | Alice | Math,English,Science |
| 2 | Bob | English,History |
| 3 | Carol | Science,Geography |
现在,我们想要找到选修了 “Math” 课程的所有学生。我们可以使用 FIND_IN_SET() 函数来实现这一目标:
SELECT * FROM students WHERE FIND_IN_SET('Math', courses) > 0;
这将返回以下结果:
| id | name | courses |
|---|---|---|
| 1 | Alice | Math,English,Science |
在这个例子中,FIND_IN_SET('Math', courses) 返回非零值(即找到了 “Math”),因此我们得到了选修了 “Math” 课程的学生。