Mysql拼接字符串搜索
#问题描述
在mysql的表中某一个键值是由,
分隔的多个id
组成的字符串, 例如: 1,2,3,4,5,6,7,8
.
现在需要搜索所有拥有id
为3
的行, 例如: 1,2,3,4
, 1,2,3
, 3,4,5,6
.
#方法一
这是我自己想到的最笨的方法, 就是将数据都取出之后再查找, 效率肯定很低.
不推荐.
#方法二
用模糊搜索, 但是假如匹配id
为3
的字段, 也同时会匹配id
为31
或13
的字段.
解决方案是将字符串头尾添加,
, 这样匹配,3,
即可.只是不够优雅.
不推荐.
#方法三
mysql提供了内置的函数FIND_IN_SET(str,strlist)
,
只需find_in_set('3', user_id_list)
即可.
推荐.
谢谢群里的大神.