如何使用MySQL find_in_set函数查询字段包含指定值?

如何使用mysql find_in_set函数查询字段包含指定值?

利用 mysql 的 find_in_set 函数查询字段包含指定值

mysql 数据库中,当表字段包含以逗号分隔的多个值时,我们无法像模糊查询那样直接找到匹配指定值的记录。这时,find_in_set 函数可以帮助解决此问题。

假设我们有一个表名为 "test",其中包含以下 "ids" 字段值:

| ids |
|---|---|
| null |
| 350 |
| 34,35,36,37 |

如果我们需要查找包含数字 "35" 的记录,可以使用以下查询:

select * from test where find_in_set(35, ids)

find_in_set 函数将 "35" 作为第一个参数,将 "ids" 字段值作为第二个参数。该函数返回一个数字,表示 "35" 在 "ids" 字段值中的位置,如果不存在则返回 0。

上面写出的查询实际上寻找 "ids" 字段值中包含 "35" 的记录,因此它将返回以下结果:

| ids |
|---|---|
| 34,35,36,37 |

请注意,即使 "350" 也包含数字 "35",但它不包含在由逗号分隔的纯数字字符串中,因此 find_in_set 函数不会将其匹配。

以上就是如何使用MySQL find_in_set函数查询字段包含指定值?的详细内容,更多请关注其它相关文章!