当前位置: 首页 > 知识库问答 >
问题:

用户定义的变量别名为MySQLV8.0不工作

东方宜
2023-03-14

MySQLV5.6.20上选择用户定义变量作为别名时,以下查询(这是一个压缩形式)运行良好,但在MySQLV8.0.23上中断

SELECT *, @rank := @rank + 1 AS rank
        FROM q39wg_comments;

共有1个答案

童子明
2023-03-14

所以我终于明白了,之所以会发生,是因为rank现在是MySQL8.x.x中的一个保留关键字。

一旦我更新了变量名,查询就开始工作了。

 类似资料:
  • 用户定义变量 数据库支持用户自定义变量,自定义变量使用@开头,能够被用于任何表达式和参数中。变量是不能持久的,作为范围为 session,这就意味着变量只在定义它的那个 session 里是有效的。一个变量通常使用 SET命 令来声明: SET @USER = 'Joe'; 变量也可以通过使用 SET() 方法来改变值。在查询中可以直接使用: SET @TOTAL = NULL; SELECT

  • 找到价格最高和最低的信息: mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE [email protected]_price OR [email protected]_price; +---------+--------+-------+ |

  • 本文向大家介绍PHP 用户定义的全局变量,包括了PHP 用户定义的全局变量的使用技巧和注意事项,需要的朋友参考一下 示例 任何函数或类之外的范围都是全局范围。当PHP脚本包含另一个脚本(使用include或require)时,范围保持不变。如果脚本包含在任何函数或类的外部,则其全局变量包含在同一全局范围内,但是如果脚本包含在函数内部,则所包含脚本中的变量位于函数的范围内。 在函数或类方法的范围内,

  • 在这个问题上我会得到任何帮助的。我已经花了好几个小时没有任何真正的解决办法。我有一个SQL 在表g1中,我对我的数据进行分组,以找到to_place最常见的情况,然后我想按升序排列这些情况(这样我以后就可以在每个to_place类别中选择最常见的前3个)。 问题是用户定义的变量是不可预测的(@rank有时总是1),这可能与这样一个事实有关,即在一个语句中,我不应该引用同一个变量(current_t

  • 我有一个用户定义的变量,我把位置放在csv文件中。 csv_path = 我的驱动器/此文件夹/.csv 当我将${csv_path}作为csv数据集配置元素中的文件名参数时,我得到一个错误,它显示路径只是CSV文件的名称。如果我手动把文件名放在那里,它就工作了。有什么想法吗?我试图创建一个相对路径,而不是硬编码一个绝对路径。

  • 所有的语言,都要用到变量。在 Lua 中,不管你在什么地方使用变量,都不需要声明,并且所有的这些变量总是全局变量,除非,你在前面加上 "local"。 这一点要特别注意,因为你可能想在函数里使用局部变量,却忘了用 local 来说明。 至于变量名字,它是大小写相关的。也就是说,A 和 a 是两个不同的变量。 定义一个变量的方法就是赋值。"=" 操作就是用来赋值的 我们一起来定义几种常用类型的变量吧