为了账号安全,请及时绑定邮箱和手机立即绑定

sql中字符串匹配问题

sql中字符串匹配问题

慕斯王 2019-04-14 10:07:57
先上数据示例IDcat_id11,2,422,3311,13,17,1943,7,9,12这是某多对多关系在基于mysql的数据表中的表现形式(因为上头说应用小用两个表就算了)并且筛选查询的要求如下表推送条件期望结果(ID)111,211,3null3,9432,4注:推送条件和期望结果都是以,隔开,实际上是个一维索引数组推送条件之间是AND关系目前鄙人想到的基于thinkphp的解决方案是:1.遍历查询结果,将cat_id化为数组2.判断推送条件(数组形式,可以认为就是表单POST来的一维数组)是不是cat_id数组的子集。然而问题就在遍历查询结果,这里测试是:结果如果达到6000+条,执行时间需要3~20秒左右,比较慢。于是问一下,上表这样的筛选要求能不能用sql语句实现,从而省掉遍历的过程?
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

个人感觉,应该可以用sql语句实现,可以写几个存储函数,但这样一来,估计工作量上可能比多加个中间表要困难许多,而且速度上估计也快不了,建议还是建个中间表
                            
查看完整回答
反对 回复 2019-04-14
?
FFIVE

TA贡献1797条经验 获得超6个赞

这种集合的问题交给redis来做最方便不过了
127.0.0.1:6379>SADDcid_11127.0.0.1:6379>SADDcid_21127.0.0.1:6379>SADDcid_22127.0.0.1:6379>SADDcid_32127.0.0.1:6379>SADDcid_41127.0.0.1:6379>SINTERcid_1cid_21)"1"127.0.0.1:6379>sintercid_2cid_31)"2"
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信