我尝试了以下方法:
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允许我执行上述示例中的查询。
暂无答案!
目前还没有任何答案,快来回答吧!