我注意到一些奇怪的关于用户定义的变量:古怪的行为
可以说我有这个表:
num_table
+---------+
| numbers |
| 3 |
| 6 |
| 9 |
+---------+
我可以创建一个逗号分隔的列表并将其存储在一个用户定义的变量,像这样:
SELECT @var := GROUP_CONCAT `numbers` from num_table;
这将值3,6,9
分配给@var
。
这里是奇怪的部分。运行
SELECT 3 IN (@var)
返回1,但运行
SELECT 6 IN (@var)
返回0
在我看来,它应该工作或不工作。任何想法为什么它只适用于列表中的第一个数字?
我会想象它将'3,6,9'转换为数字,最终忽略了第一个非数字字符以后的任何内容,因此最终以3结尾。 – 2011-05-10 15:59:50