企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
分配操作符 1、分配操作符是指赋值操作 ~~~ 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 ~~~ 2、:=操作符也可以用在update等语句 ~~~ mysql> select * from t1; +------+ | c1 | +------+ | 2 | | 3 | | 5 | | 7 | +------+ 4 rows in set (0.00 sec) mysql> select @var1:=1; +----------+ | @var1:=1 | +----------+ | 1 | +----------+ 1 row in set (0.00 sec) mysql> update t1 set c1=2 where c1=@var1:=1; #####c1=@var1:=1; 第一个=号是对比 第二个是赋值 Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from t1; +------+ | c1 | +------+ | 2 | | 3 | | 5 | | 7 | +------+ 4 rows in set (0.00 sec) ~~~ 3、=操作符在两种情况下会被认为是赋值操作,而其他情况下会认为是对比操作符 (1)、在set语句中,=操作符会被认为是赋值操作 ~~~ mysql> set @a=1; mysql> select @a; +------+ | @a | +------+ | 1 | ~~~ (2)、在update语句中的set子句中,=操作符会被认为是赋值操作