0

可能重复:
MySQL 查询以逗号分隔的字符串查找值

有个奇怪的问题,希望大家能帮我解答。如果我使用 g.questions (这是一个逗号分隔的 varchar 列表),这只会输出第一个 id。但是如果我手动输入“1,2,3,4”而不是 g.questions,我会得到我所期望的......

这是怎么回事?:-)

SELECT q.id FROM `questions` q 
LEFT OUTER JOIN `game` g 
ON g.id = 1 
WHERE q.id IN (g.questions)
4

1 回答 1

0

这将完成您正在尝试做的事情:

SELECT q.id FROM `questions` q 
LEFT OUTER JOIN `game` g 
ON g.id = 1 
WHERE concat(',',g.questions,',') like concat('%,',q.id,',%')

在逗号分隔的字符串之前和之后添加一个逗号,以确保每个值都由逗号绑定,然后使用 like 将 ",1,2,3,4" 与 "%,2,%" 或任何你的 q.id 匹配.

于 2013-01-19T04:41:23.673 回答