为什么在mysql 5.6中设置变量时会出现语法错误?

ohfgkhjo  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(187)

我尝试了以下方法:

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允许我执行上述示例中的查询。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题