0

我在 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。我究竟做错了什么?

4

1 回答 1

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

于 2013-11-05T09:51:26.700 回答