2016-07-31 13 views
1

Es gibt einen Teil der Abfrage, die ich nicht versteheWas macht diese Abfrage?

Kann einige bitte erklären?

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

Wenn man bedenkt, dass schema_name Rückkehr alle Datenbanken nennen

Ist es Schleife oder was ich nicht verstehen kann,

+0

Es ist ein lausiger Bit Code IMO. Diese Art von Datenanzeigeproblem könnte in der CSS behandelt werden. – Strawberry

Antwort

0

Vermutlich das ist eine Aussage in einem select:

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

Wenn @a auf NULL initialisiert wird, dann Dies gibt NULL zurück. Normalerweise wird es mit einer leeren Zeichenfolge initialisiert ('').

Wenn ja, wird eine Zeichenfolge erstellt, die alle Werte von schema_name gefolgt von <br> enthält. Also, wenn die Tabelle enthält:

schema_name 
    a 
    b 
    c 

Das Ergebnis wäre 'a<br>b<br>c<br>' in dem @a Variable (und MySQL wird dieses Ergebnis zurück als auch).

In MySQL würden Sie normalerweise group_concat() für diesen Zweck verwenden.

+0

Ok, aber können Sie mir sagen, was '' = = tun? – dragon

+0

'a
b
c
' wird '@ a' sein? – dragon

+0

@dragon. . . Ja. Das ': =' weist Variablen in einer 'select',' update' oder 'delete' Anweisung Werte zu. –