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) に対して 1 回だけ返されます。

その値を直接挿入すると、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 に答える