0

我在 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 的元组初始化变量。

4

1 回答 1

4

你不能那样做,也不清楚你为什么想要它。但是你可以做一些类似的动态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 秒)
于 2013-06-30T06:32:47.963 回答