sql实现不定项多选筛选查询过滤

项目中碰到的问题

已有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;
———————————
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值