如何比较varchar与使用mysql返回的值数组

omqzjyyz  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(351)

我想得到用户的id谁与匹配的合作伙伴id的合作伙伴。在用户表中,我应该保存为逗号分隔字符串的合作伙伴id。首先,我从partners表中获取partner id,partners表是id数组(多个记录)。然后我必须将这个id数组与users表中的partners\u 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
xam8gpfp

xam8gpfp1#

最后,我找到匹配伙伴的userid,如下所示。感谢@asif thebepotra,它帮助找到了查询。

SELECT users.userId FROM users INNER JOIN partners on FIND_IN_SET(partners.id,users.partners_id) > 0 where partners.name like '%XX%' AND partners.ative = 1;

相关问题