日期:2014-05-16 浏览次数:20946 次
mysql> SET @t1=0, @t2=0, @t3=0; mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3; +----------------------+------+------+------+ | @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 | +----------------------+------+------+------+ | 5 | 5 | 1 | 4 | +----------------------+------+------+------+ mysql> select @t:=count(*) from admin; +--------------+ | @t:=count(*) | +--------------+ | 1 | +--------------+
mysql> set @a='test'; mysql> select @a,(@a:=20) from admin; +------+----------+ | @a | (@a:=20) | +------+----------+ | test | 20 | +------+----------+ mysql> select @a; +------+ | @a | +------+ | 20 | +------+
mysql> create table test (id int primary key, value int) ENGINE=InnoDB; Query OK, 0 rows affected (0.03 sec) mysql> insert into test values(1, 1), (2, 10), (3, 12), (4, 5), (5, 20); Query OK, 5 rows affected (0.03 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> set @rownum = 0; Query OK, 0 rows affected (0.00 sec) mysql> select @rownum := @rownum + 1 as rownum, id, value -> from test where @rownum < 2; +--------+----+-------+ | rownum | id | value | +--------+----+-------+ | 1 | 1 | 1 | | 2 | 2 | 10 | +--------+----+-------+ 2 rows in set (0.00 sec)
mysql> select @rownum as rownum, id, value from test -> where (@rownum := @rownum + 1) < 2;
mysql> set @rownum = 0; mysql> select @rownum := @rownum + 1 as rownum, id, value -> from test where @rownum < 2 order by value; +--------+----+-------+ | rownum | id | value | +--------+----+-------+ | 1 | 1 | 1 | | 2 | 4 | 5 | | 3 | 2 | 10 | | 4 | 3 | 12 | | 5 | 5 | 20 | +--------+----+-------+ 5 rows in set (0.00 sec)
mysql> select @rownum as rownum, id, value from test -> where (@rownum := @rownum + 1) < 2 order by value;