【发布时间】:2016-04-11 04:22:17
【问题描述】:
我不明白为什么这不起作用,我有一列在我的“Mysql”数据库中存储逗号分隔的值,然后我想加入两个表来给我结果。例如:
SELECT *
FROM users u INNER JOIN
groups g
ON u.id IN ( g.ownerId )
WHERE u.active='1' AND g.gid='15';
而g.ownerId 在这个senerio 中的值是'175,178'。
由于某种原因,这仅返回来自 ownerId 175 的联接的结果。但是,如果我在 IN 子句中手动输入值 ( 175, 178 ),则两行都会显示。为什么不使用 ownerId 列中的两个值?
我已经尝试过这个“分离”值或强制“列表”,但它没有工作...... SELECT * FROM users u INNER JOIN groups g ON u.id IN (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(g.ownerId, ',', 1), ' ', -1) as x, SUBSTRING_INDEX(SUBSTRING_INDEX(g.ownerId, ',', 2), ' ', -1) as y ) 其中 g.groupId='15'
有没有人经历过这种情况或知道该怎么做?
【问题讨论】:
标签: mysql