使用状态IN()的复杂MySql查询

时间:2011-03-28 04:14:17

标签: php mysql

这是一种情况;在名为foo的表列中,我有动态implode() d varchar数据,如1,2,3,42,31,3等等。

稍后,在代码中,在查询之前会识别字符串$ce = 3;,准备从包含数字3的foo列中提取资源。

现在我正在使用以下选择..

SELECT DISTINCT place FROM xx WHERE she = 1
                      AND foo IN ($ce)

那不行。

SELECT DISTINCT place FROM xx WHERE she = 1
                      AND $ce IN (foo)

也不这样做。

哪里错了?有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这不是IN子句的用途。

而是使用instr函数,如下所示:

SELECT DISTINCT place FROM xx WHERE she = 1 AND instr(foo, $ce) > 0

您还可以使用正则表达式:http://dev.mysql.com/doc/refman/5.0/en/regexp.html

答案 1 :(得分:0)

SELECT DISTINCT place FROM xx WHERE she = 1 AND FIND_IN_SET('$ce',foo)

这应该适合你。