MySQL使用函数IN和变量

时间:2013-11-05 09:46:54

标签: mysql

我在IN函数中查询带有变量的表有问题。

SELECT 
    s.date,
    (SELECT
         GROUP_CONCAT(value) 
         FROM value 
         WHERE id_value 
         IN(s.ref_values)
    ) AS vals
FROM stats s
ORDER BY s.date DESC
LIMIT 1

s.ref_values'12,22,54,15'的位置。我只获得一个第一个号码的回报(12)。

当我在IN(12,22,54,15)中直接插入该值时,它会找到所有4.

因此,在IN中使用变量一定存在问题。我做错了什么?

1 个答案:

答案 0 :(得分:1)

将您的查询重写为

SELECT 
s.date,
(SELECT
     GROUP_CONCAT(value) 
     FROM value 
     WHERE id_value 
     IN(SELECT ref_values FROM stats)
) 
AS vals
FROM stats s
ORDER BY s.date DESC
LIMIT 1

看看是否有帮助。

理想情况下,您应该将结果集作为参数传递给IN