我在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中使用变量肯定有问题。我做错了什么?
发布于 2013-11-05 17:51:27
将查询重写为
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
https://stackoverflow.com/questions/19785920
复制相似问题