2016-07-31 48 views
1

有一部分查询我不明白这个查询有什么作用?

可以解释一下吗?

(@a:=concat(@a,schema_name,'<br>')

如果我们认为schema_name回报所有数据库命名

它是循环还是什么我不明白

+0

这是一个糟糕的代码国际海事组织。这种数据显示问题可以在css中处理。 – Strawberry

回答

0

据推测,这是在select声明:

select @a := concat(@a, schema_name, '<br>') 
from t; 

如果@a初始化为NULL,则这返回NULL。通常,它会被初始化为一个空字符串('')。

如果是这样,它将构造一个字符串,其中包含schema_name后跟<br>的所有值。因此,如果表包含:

schema_name 
    a 
    b 
    c 

其结果将是'a<br>b<br>c<br>'@a变量(和MySQL将返回该结果也一样)。

在MySQL中,您通常会使用group_concat()来实现此目的。

+0

好的,但是你能告诉我''='做了什么吗? – dragon

+0

'a
b
c
'会是'@ a'值吗? – dragon

+0

@dragon。 。 。是。 ':='为'select','update'或'delete'语句中的变量赋值。 –