我在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
中使用变量一定存在问题。我做错了什么?
答案 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