项目中碰到的问题
已有user表中增加用户标签功能,用户列表实现根据标签筛选用户功能
用户绑定标签→用户标签多对多关系
标签筛选过滤→选中多个标签后,筛选出符合所选标签用户
使用数据库mysql
设置表用户表(test)、关系表(test2),筛选项直接传入label_id,所以这两张表应该够用了
实现思路:标签筛选项作为入参,如果筛选标签是用户已绑定标签的子集,则匹配数据
最先想到的是mysql函数 find_in_set
尝试后find_in_set只能单条数据匹配,无法子集匹配
启动搜索(公司无法访问g)参考文章
MySQL中利用help_topic实现行转列_Lens5935的博客-CSDN博客_mysql.help_topic
在这个sql的基础上做改造
select a.id,substring_index(substring_index(a.value,',',b.help_topic_id+1),',',-1) as value
from
source_table a
join
mysql.help_topic b
on b.help_topic_id < (length(a.value) - length(replace(a.value,',',''))+1)
order by a.id;
———————————