我在 mysql shell 中设置这样的变量
mysql> set @nilesh := 330;
Query OK, 0 rows affected (0.00 sec)
这工作正常,但是当我试图为其设置一个元组时,
mysql> set @nilesh := (330, 221);
ERROR 1241 (21000): Operand should contain 1 column(s)
我收到一个错误,请建议我如何使用 mysql 的元组初始化变量。
你不能那样做,也不清楚你为什么想要它。但是你可以做一些类似的动态sql方式
mysql> 设置@ids = '1, 2'; 查询正常,0 行受影响(0.00 秒) mysql> set @sql = concat('select * from table1 where id in (', @ids, ')'); 查询正常,0 行受影响(0.00 秒) mysql>选择@sql; +------------------------------------------------------+ | @sql | +------------------------------------------------------+ | select * from table1 where id in (1, 2) | +------------------------------------------------------+ 一组中的 1 行(0.00 秒) mysql> 从@sql 准备stmt; 查询正常,0 行受影响(0.00 秒) 准备好的声明 mysql>执行stmt; +-----+------------+------+ | 编号 | col1 | col2 | +-----+------------+------+ | 1 | 值1 | 11 | | 2 | 值2 | 12 | +-----+------------+------+ 2 行(0.00 秒) mysql> 解除分配准备 stmt; 查询正常,0 行受影响(0.00 秒)