首页 > 解决方案 > SELECT @xi:=@xi+1 AS xc 是什么意思?

问题描述

我被要求重构一个包含片段的查询:

SELECT @xi:=@xi+1 AS xc
FROM
   (SELECT 1
    UNION SELECT 2
    UNION SELECT 3) xc1,

   (SELECT 1
    UNION SELECT 2
    UNION SELECT 3)xc2,

   (SELECT 1
    UNION SELECT 2
    UNION SELECT 3) xc3,

   (SELECT @xi:=-1) xc0

我相信查询的其余部分是用 MySQL 编写的。

我对这种编写查询的方式完全陌生,并且在任何 Postgresql、MySQL 或 BigQuery 标准 SQL 文档中都没有遇到过。

不幸的是,查询的其他元素不起作用,所以我无法产生输出或描述我想要实现的目标(因为我不知道这是做什么的)但是在我处理其他部分时我想有人可能能够提供对该特定逻辑的语法的一些见解,或者提供一个主题,我可以找到有关此代码段的更多信息,以便我可以发展我的知识。

标签: mysql

解决方案


这是一个用户定义的变量,将显示:

    0 (-1+1)
    1 (0+1)
    2 (1+1)
    3 (2+1)
...
    26 (25+1)

推荐阅读