【问题标题】:how to compare varchar with array of values return using mysql如何将varchar与使用mysql返回的值数组进行比较
【发布时间】: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

【问题讨论】:

标签: php mysql codeigniter


【解决方案1】:

最后我找到匹配合作伙伴的用户 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多