Imagine you have to create a running number for a query result and select only the line 1, 2 and 18.
You choose user variables as a means to do that.
(Find all correct answers)
a) set @a=0;
select *
from (select (@a:=@a+1) as ln,table_name
from information_schema.tables
where table_schema='mysql' order by table_name) v1
where ln in (1,2,18);
b) set @a=0;
select (@a:=@a+1) as ln,table_name
from information_schema.tables
where table_schema='mysql' and @a in (1,2,18)
order by table_name;
c) set @a=0;
select @a as ln,table_name
from information_schema.tables
where table_schema='mysql' having (@a:=@a+1) in (1,2,18)
order by table_name;
[ User Variables (5%) - User Variable Properties ]
Answers:
a c
c works, but the most reliable option is a. User variables are powerful but can be tricky.
Please check http://dev.mysql.com/doc/refman/5.0/en/user-variables.html