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)即可.
推荐.
谢谢群里的大神.