1

私の関数コードは次のようなものです。

DECLARE ids VARCHAR(55);
SELECT  GROUP_CONCAT(id) INTO ids 
        FROM tableName WHERE ...;
SELECT CONCAT(GROUP_CONCAT(id), ids ) INTO ids FROM tableName .....;
SELECT column_name FROM tableName WHERE id IN (**ids**);

これで、2 つの select ステートメントで ID リストを作成し、IN リストに適用しています。それは私に null result を与えます。CONCAT(GROUP_CONCAT(id), CAST(ids as char) ) のようにIDをキャストすると、最初の行の結果が得られます。

4

2 に答える 2

0

次のコードで問題を解決しました

DECLARE ids VARCHAR(55);
SELECT GROUP_CONCAT(id SEPARATOR ',') INTO ids  FROM tableName WHERE ...;
SELECT CONCAT_WS(',', CAST(GROUP_CONCAT(id SEPARATOR ',')AS CHAR), CAST(ids AS CHAR)) INTO ids FROM tableName .....;
SELECT column_name FROM tableName WHERE FIND_IN_SET (id, ids );
于 2015-01-01T05:03:29.233 に答える