Я пробовал следующее:
use my_db;
SET SESSION query_cache_type=OFF;
SET @CA_FR_ID = '16';
SET @CA_EN_ID = '15';
SET @US_ID = '1';
select * from my_table where my_table.id in (@CA_FR_ID, @CA_EN_ID);
и ...
use my_db;
SET @CA_FR_ID = '16';
SET @CA_EN_ID = '15';
SET @US_ID = '1';
select * from my_table where my_table.id in (@CA_FR_ID, @CA_EN_ID);
и ...
use my_db;
SET @CA_FR_ID := '16';
SET @CA_EN_ID := '15';
SET @US_ID := '1';
select * from my_table where my_table.id in (@CA_FR_ID, @CA_EN_ID);
и ...
use my_db;
SET @CA_FR_ID = '16',
@CA_EN_ID = '15',
@US_ID = '1';
select * from my_table where my_table.id in (@CA_FR_ID, @CA_EN_ID);
Каждый из этих результатов приводит к ошибке, которая выдается после первой точки с запятой после SET
:
[42000] [1064] В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'SET
Это странно, потому что я использовал этот синтаксис ранее.И даже копирование / вставка рабочего кода из прошлого теперь возвращает эту ошибку.
РЕДАКТИРОВАТЬ:
Полагаю, я должен был испортить настройку MySQL в более ранней переменнойустановить попытку.Перезапуск MySQL позволил мне выполнить запросы в приведенных выше примерах.