gpt4 book ai didi

mysql - MySQL 中用户定义变量的奇怪行为

转载 作者:行者123 更新时间:2023-11-29 05:42:06 26 4
gpt4 key购买 nike

我注意到用户定义变量有些奇怪:

假设我有这张表:

 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。

在我看来,它要么有效,要么无效。知道为什么它只适用于列表中的第一个数字吗?

最佳答案

您不能将 IN () 与变量一起使用并将该变量视为列表 - 只能使用实际列表(可能是变量) - 即 IN (1, 2 , 3)IN (@var1, @var2, @var3)

如果 @var 包含“3, 6, 9”,两者都不应该工作 - 所以我怀疑 @var 包含“3”,不过 - 你能验证它的内容吗?

Martin 可能对类型转换有所了解 - 我敢打赌 '3' IN (@var) 什么都不返回

关于mysql - MySQL 中用户定义变量的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com