Mysql не имеет типа массива, который вы можете передать хранимой процедуре. То, что вы передаете, является просто строкой и будет соответствовать только, если t1.int_field in ("1,2,3,4,5,6")
, одна строка. То, что вы хотите, это t1.int_field in (1,2,3,4,5,6)
, список целых чисел.
Общий подход заключается в следующем:
- Ваша хранимая процедура создаст временную таблицу для хранения отдельных целочисленных значений
- Используйте строковые функции Mysql в цикле, чтобы разбить строку «1,2,3,4,5,6» и вставить каждое значение во временную таблицу.
- Используйте временную таблицу, содержащую значения в вашем запросе. Ваше предложение WHERE станет чем-то вроде
WHERE t1.int_field in (select ID from my_temp_table)