drop table if exists t1,t2;
set @a := foo;
ERROR 42S22: Unknown column 'foo' in 'field list'
set @a := connection_id() + 3;
select @a - connection_id();
@a - connection_id()
3
set @b := 1;
select @b;
@b
1
CREATE TABLE t1 ( i int not null, v int not null,index (i));
insert into t1 values (1,1),(1,3),(2,1);
create table t2 (i int not null, unique (i));
insert into t2 select distinct i from t1;
select * from t2;
i
1
2
select distinct t2.i,@vv1:=if(sv1.i,1,0),@vv2:=if(sv2.i,1,0),@vv3:=if(sv3.i,1,0), @vv1+@vv2+@vv3 from t2 left join t1 as sv1 on sv1.i=t2.i and sv1.v=1 left join t1 as sv2 on sv2.i=t2.i and sv2.v=2 left join t1 as sv3 on sv3.i=t2.i and sv3.v=3;
i	@vv1:=if(sv1.i,1,0)	@vv2:=if(sv2.i,1,0)	@vv3:=if(sv3.i,1,0)	@vv1+@vv2+@vv3
1	1	0	1	2
2	1	0	0	1
explain select * from t1 where i=@vv1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ref	i	i	4	const	1	Using where
explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	3	Using where
explain select @vv1:=i from t1 where i=@vv1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	index	NULL	i	4	NULL	3	Using where; Using index
explain select * from t1 where i=@vv1;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ref	i	i	4	const	1	Using where
drop table t1,t2;
set @a=0,@b=0;
select @a:=10,   @b:=1,   @a > @b, @a < @b;
@a:=10	@b:=1	@a > @b	@a < @b
10	1	1	0
select @a:="10", @b:="1", @a > @b, @a < @b;
@a:="10"	@b:="1"	@a > @b	@a < @b
10	1	1	0
select @a:=10,   @b:=2,   @a > @b, @a < @b;
@a:=10	@b:=2	@a > @b	@a < @b
10	2	0	1
select @a:="10", @b:="2", @a > @b, @a < @b;
@a:="10"	@b:="2"	@a > @b	@a < @b
10	2	1	0
select @a:=1;
@a:=1
1
select @a, @a:=1;
@a	@a:=1
1	1
create table t1 (id int, d double, c char(10));
insert into t1 values (1,2.0, "test");
select @c:=0;
@c:=0
0
update t1 SET id=(@c:=@c+1);
select @c;
@c
1
select @c:=0;
@c:=0
0
update t1 set id=(@c:=@c+1);
select @c;
@c
1
select @c:=0;
@c:=0
0
select @c:=@c+1;
@c:=@c+1
1
select @d,(@d:=id),@d from t1;
@d	(@d:=id)	@d
NULL	1	1
select @e,(@e:=d),@e from t1;
@e	(@e:=d)	@e
NULL	2	2
select @f,(@f:=c),@f from t1;
@f	(@f:=c)	@f
NULL	test	test
set @g=1;
select @g,(@g:=c),@g from t1;
@g	(@g:=c)	@g
1	test	test
select @c, @d, @e, @f;
@c	@d	@e	@f
1	1	2	test
select @d:=id, @e:=id, @f:=id, @g:=@id from t1;
@d:=id	@e:=id	@f:=id	@g:=@id
1	1	1	NULL
select @c, @d, @e, @f, @g;
@c	@d	@e	@f	@g
1	1	1	1	NULL
drop table t1;
select @a:=10, @b:=2, @a>@b, @a:="10", @b:="2", @a>@b, @a:=10, @b:=2, @a>@b, @a:="10", @b:="2", @a>@b;
@a:=10	@b:=2	@a>@b	@a:="10"	@b:="2"	@a>@b	@a:=10	@b:=2	@a>@b	@a:="10"	@b:="2"	@a>@b
10	2	1	10	2	1	10	2	1	10	2	1
