Для моего MySQL PROCEDURE
у меня есть оператор запроса select с использованием условия WHERE IN (...)
, для которого мне нужны некоторые условные входные данные / переменные.
пример:
SELECT * FROM test_table tt WHERE tt.section IN ('A', 'B', 'C');
SELECT * FROM test_table tt WHERE tt.section IN ('A', 'B', 'D');
SELECT * FROM test_table tt WHERE tt.section IN ('A','C');
SELECT * FROM test_table tt WHERE tt.section IN ('A', 'B', 'C', 'D');
Как я могу добиться этого с помощью одного запроса?
Примечание. Этот оператор запроса выбора находится внутри mySQL PROCEDURE
.
Я ищу что-то вроде этого:
SET @ABC = '"A", "B", "C"';
SET @ABCD = '"A", "B", "C", "D"';
SET @AC = '"A", "B", "C", "D"';
SET @IN_CLAOUSE_VARIABLES = NULL;
IF (<CONDITION 1>) THEN
SET @IN_CLAOUSE_VARIABLES = @ABC;
ELSEIF (<CONDITION 2>) THEN
SET @IN_CLAOUSE_VARIABLES = @ABCD;
ELSE
SET @IN_CLAOUSE_VARIABLES = @AC;
END IF:
SELECT * FROM test_table tt WHERE tt.section IN (@IN_CLAOUSE_VARIABLES);