【发布时间】:2018-10-25 14:41:15
【问题描述】:
我想获取具有匹配合作伙伴 ID 的合作伙伴的用户的 ID。在用户表中,我应该将合作伙伴 ID 保存为逗号分隔的字符串。首先,我从合作伙伴表中获取合作伙伴 id,该表是 id 数组(多条记录)。然后我必须将这个 id 数组与 users 表中的 partners_id 进行比较。如何将字符串与值数组进行比较。
在这里,我尝试将 id 数组转换为字符串,然后进行比较。但这没有帮助。有人建议一种方法。
我试过的查询
SELECT `user`.`userID` FROM `user` WHERE `user`.`groupID` = 1234 AND `user`.`partners_id LIKE (SELECT GROUP_CONCAT(partners.id) as pid FROM `partners` WHERE `partners`.`name` LIKE '%XX%' AND `partners`.`active` = 1)
表用户
userID groupID partners_id
1 4 1A,2B,3C
2 3 1A
3 4 2B
4 4 5C,2B
合作伙伴
id name active
1A XXSS 1
1B AAYY 0
1C ZZSS 1
2B CCXX 1
3C XXBB 1
5C CCDD 0
【问题讨论】:
-
"我应该将合作伙伴 ID 保存为逗号分隔的字符串。"请停在那里。不要存储为逗号分隔的字符串。你真的应该遵循规范化的原则
-
@NigelRen 和 Cabrra 我的问题与你提到的不同
-
我想你可以在这里找到你的解决方案stackoverflow.com/questions/19101550/…
-
@AsifThebepotra 感谢您的参考,它节省了我的时间
标签: php mysql codeigniter