MYSQL 查询某字段中包含以逗号分隔的字符串的记录方法

表中有个字段是以逗号间隔存储的

mineral

id mineral
1 1,4,32
2 1,2

要根据mineral查询这个表的数据

怎么查询呢

select * from xxx where find_in_set(2,mineral);

查询结果是 :

id mineral
2 1,2

那么 find_in_set是一个什么函数呢?

MySQL提供了一个名为find_in_set()的内置函数,运行在逗号间隔的字符串列表中查找指定字符串的位置。

find_in_set(needle,haystack);

find_in_set()函数接受两个参数:

第一个参数needle是要查找的字符串。

第二个参数haystack是要搜索的逗号间隔字符串列表。

find_in_set(0函数根据参数的值返回一个整数或一个NULL值:

如果needle或haystack为null,则函数返回null值。

如果needle不在haystack中,或者haystack是空字符串,则返回零。

如果needle在haystack中,则返回一个needle在haystack中的位置。

请注意,如果needle包含逗号(,),该函数将无法正常工作。此外,如果needle是一个常量字符串,而且naystack是一个类型为set的列,mySQL将使用位算算术优化。


猜你喜欢

转载自blog.csdn.net/qq_28285625/article/details/80421097
今日推荐