2013-12-08 91 views
0

我有一个从函数“'aa','bb','cc',...”(该函数使用GROUP_CONCAT)返回的字符串。我想用这个作为mysql的IN语句中的一个条件。使用IN子句检查条件mysql

SELECT name,class,comment 
FROM vwstudent v 
WHERE name IN (select func()) 

我希望查询像

SELECT name,class,comment 
FROM vwstudent v 
WHERE name IN ('aa','bb','cc','dd',..) 

我认为( 'AA', 'BB', 'CC', 'DD',..)在这里充当整个字符串并没有产生任何结果。我能做些什么来减少运行这个查询错误。

+1

该字符串是由'GROUP_CONCAT()'生成的吗?那么你可能应该加入表格并忘记'GROUP_CONCAT()'和'IN()'。经典[XY问题](http://meta.stackexchange.com/q/66377)。 – eggyal

+0

看到这个答案:http://stackoverflow.com/a/19465469/575376 –

+0

或看到这一个:http://stackoverflow.com/a/11425315/149076 –

回答

0

我不确定它是否有帮助。但是,您可以使用PREPARE和EXECUTE在此处描述的方式一起破解一些内容:How To have Dynamic SQL in MySQL Stored Procedure

...但这对我来说是全新的。我从来没有在MySQL中使用过类似的东西。