这个mysql语法做了什么

时间:2018-04-25 11:01:42

标签: mysql

SELECT @no:=0

以上代码的作用是什么?

我在很长的查询中找到了它,看起来像这样:

SELECT t1.a, t2.a, ....... FROM table t1, (SELECT @no:=0) t2

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在下面的查询中,@ no是MySQL的变量,使用:=0为其分配值0

SELECT @no:=0

<强>解释

用户定义的变量(以@为前缀):

您可以访问任何用户定义的变量,而无需声明或初始化它。如果引用尚未初始化的变量,则其值为NULL且字符串类型为。

SELECT @var_any_var_name

您可以使用SET或SELECT语句初始化变量:

SET @start = 1, @finish = 10;    

SELECT @start := 1, @finish := 10;

有关用户定义变量的更多信息,请访问以下链接:

  

https://dev.mysql.com/doc/refman/8.0/en/user-variables.html

答案 1 :(得分:0)

  

Select @no:=0中,您定义了一个值为0的变量

CREATE TABLE Table1
    (`a` int)
;

INSERT INTO Table1
    (`a`)
VALUES
    (1),
    (2),
    (3),
    (4),
    (5)
;

SELECT t1.a, @no FROM table1 t1, 
(SELECT @no:=0) t2

<强>输出

a   @no
1   0
2   0
3   0
4   0
5   0

演示

  

http://sqlfiddle.com/#!9/ba32e4/1