我在 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 秒)