变量列表不起作用 - 手动列表可以

时间:2013-01-19 02:53:46

标签: mysql sql

  

可能重复:
  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)

1 个答案:

答案 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是。