2010-02-04 12 views

Antwort

4

Kurz gesagt, wenn SET Verwendung sie beide als Zuweisungsoperator, aber in allen möglichen nicht-Set-Anweisungen, := ist für assingment und = Kontrollen für Gleichheit.

Für SET kann entweder = oder: = als Zuweisungsoperator verwendet werden.

Sie können einer Benutzervariablen auch einen Wert in anderen Anweisungen als SET zuweisen. In diesem Fall muss der Zuweisungsoperator sein: = und nicht = da = als Vergleichsoperator in Nicht-SET-Anweisungen

mysql> SET @t1=1, @t2=2, @t3:=4; 
mysql> SELECT @t1, @t2, @t3, @t4 := @[email protected][email protected]; 
+------+------+------+--------------------+ 
| @t1 | @t2 | @t3 | @t4 := @[email protected][email protected] | 
+------+------+------+--------------------+ 
| 1 | 2 | 4 |     7 | 
+------+------+------+--------------------+ 

von MySQL 8.4 User Defined Variables

+0

Scheint, es ist veraltet: mysql> @num: = 0; 'wird Fehler geben. – user198729

+0

Ist das eine gültige MySQL-Anweisung? Können Sie solche Variablen definieren? –

+0

Für alle, die diese Kommentare lesen, ist es nicht veraltet. Und danke @AnthonyForloney für die Verbreitung der Grundlagen. Deshalb liebe ich stackoverflow. – billynoah

2

Beide sind Zuweisungsoperator genommen behandelt wird.

: = wurde erstellt, um klarer zu sein, denn = ist auch ein Äquivalenzoperator in SQL. WHERE x = 1; (die meisten Computersprachen sind ==)

+0

heh .. was die Frage aufwirft, warum zum Teufel hat nicht einfach '==' und '=' wie der Rest des Universums verwendet? – billynoah

Verwandte Themen