可能重复:
MySQL query finding values in a comma separated string
我有一个奇怪的问题,我希望你们能为我回答。 如果我使用g.questions(这是一个commaseperated 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)
答案 0 :(得分: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是。