コロンイコール (:=) と イコール (=) の違いは ; MySQL

:= と = は共に同じ意味。代入演算記号。

私見になるが、Webに転がるサンプルコードの流儀に従えば、

あまり気にしないでよい。

(ただ、MySQLの場合であって、多言語やソフト(VBAutoHotKey)は

挙動が違うようなので注意)

以下は判断材料。共に公式Docsより


:=

これが使えるのは

  1. SET 句の中ではなく

  2. valid な SQL文だけ

mysql> SELECT @var1, @var2;
        -> NULL, NULL
mysql> SELECT @var1 := 1, @var2;
        -> 1, NULL
mysql> SELECT @var1, @var2;
        -> 1, NULL
mysql> SELECT @var1, @var2 := @var1;
        -> 1, 1
mysql> SELECT @var1, @var2;
        -> 1, 1

mysql> SELECT @var1:=COUNT(*) FROM t1;
        -> 4
mysql> SELECT @var1;
        -> 4

=

SET 句の中で使うと := と等しくなる

SET @var_name = expr;

引用元

MySQL 5.0 公式 Document # Assignment operators

MySQL 5.0 公式 Document # Set syntax

stackoverflow # コロンイコールって何してるの