0

重複の可能性:
SQL IN 句をパラメータ化しますか?

必要な結果を得るために IN 句で変数を使用することは可能ですか?

ハードコーディングされた例;

SELECT 1 FROM `test` WHERE test_name IN ('Test1', 'Test2');

望ましい解決策:

SET @test_names = 'Test1, Test2';
SELECT 1 FROM `test` WHERE test_name IN (@test_names);

または、これを達成する他の方法はありますか?

解決:

SET @test_names = 'Test1,Test2';
SELECT 1 FROM `test` FIND_IN_SET(test_name, @test_names);

@test_names にスペースが含まれていないことに注意してください。

4

1 に答える 1

0

ちょうど別の解決策。(試行錯誤で出来ました^^)

SQLFIDDLE デモ

SET @looking_for = "('Test1', 'Test2')";

SET @sql = CONCAT_WS(' WHERE test_name IN ', 'SELECT * FROM test', @looking_for);
PREPARE preptest FROM @sql;
EXECUTE preptest;
于 2012-11-20T20:22:13.497 に答える