2003-01-06 00:48:59 +01:00
drop table if exists t1,t2;
2001-09-28 07:05:54 +02:00
set @a := foo;
2002-07-23 17:31:22 +02:00
Unknown column 'foo' in 'field list'
2001-09-28 07:05:54 +02:00
set @a := connection_id() + 3;
select @a - connection_id();
2001-03-14 07:07:12 +01:00
@a - connection_id()
3
2001-09-28 07:05:54 +02:00
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;
2001-03-15 02:55:48 +01:00
i
1
2
2001-09-28 07:05:54 +02:00
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;
2001-03-15 02:55:48 +01:00
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
2001-09-28 07:05:54 +02:00
explain select * from t1 where i=@vv1;
2002-09-26 22:08:22 +02:00
id select_type table type possible_keys key key_len ref rows Extra
2002-11-21 14:56:48 +01:00
1 SIMPLE t1 ref i i 4 const 1 Using where
2001-09-28 07:05:54 +02:00
explain select * from t1 where @vv1:=@vv1+1 and i=@vv1;
2002-09-26 22:08:22 +02:00
id select_type table type possible_keys key key_len ref rows Extra
2002-11-21 14:56:48 +01:00
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
2001-09-28 07:05:54 +02:00
explain select @vv1:=i from t1 where i=@vv1;
2002-09-26 22:08:22 +02:00
id select_type table type possible_keys key key_len ref rows Extra
2002-11-21 14:56:48 +01:00
1 SIMPLE t1 index NULL i 4 NULL 3 Using where; Using index
2001-09-28 07:05:54 +02:00
explain select * from t1 where i=@vv1;
2002-09-26 22:08:22 +02:00
id select_type table type possible_keys key key_len ref rows Extra
2002-11-21 14:56:48 +01:00
1 SIMPLE t1 ref i i 4 const 1 Using where
2001-09-28 07:05:54 +02:00
drop table t1,t2;