gpt4 book ai didi

MySQL:在一条语句中混合 SET @variable 和 SELECT

转载 作者:行者123 更新时间:2023-11-29 09:39:21 25 4
gpt4 key购买 nike

我发现了 3 种不同的语法来设置变量,但只有第三种有效。你能解释一下原因吗?

#doesn't work at all (error)
SET @N = 3; --3rd word
SET @delimiter = ' ';
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(`sentence`, @delimiter, @N), @delimiter, -1)
FROM
`test`;

https://www.db-fiddle.com/f/dJXZQT7nQvAcbbfon4HRXr/1

#working not as expected
SELECT @N := 3;
SELECT @delimiter := ' ';
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`sentence`, @delimiter, @N), @delimiter, -1)
FROM
`test`;

https://www.db-fiddle.com/f/dJXZQT7nQvAcbbfon4HRXr/2

#working fine  
SELECT 3 INTO @N;
SELECT ' ' INTO @delimiter;
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`sentence`, @delimiter, @N), @delimiter, -1)
FROM
`test`;

https://www.db-fiddle.com/f/dJXZQT7nQvAcbbfon4HRXr/3

最佳答案

您不应该使用 db-fiddle.com 进行测试

在您的第一个示例中,错误出现在您的评论中。要成为有效的注释,-- 后面必须跟一个空格。

当你修复这个问题后,所有 3 个功能在官方 MySQL 命令行客户端上的工作方式完全相同! db-fiddle.com 上仍然没有,但就像我说的,这根本不重要。选择哪一个取决于个人喜好以及是否想要在命令行上输出。 SET 不输出,SELECT 输出。

关于MySQL:在一条语句中混合 SET @variable 和 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56952500/

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