#mysql
Пример вот тут
он же вот
select iid, uid from (select a.iid, a.uid,
@cnt := case when @iid = a.iid then @cnt+1 else 1 end cnt,
@iid := a.iid iid1
from (select iid, uid
from interest where iid in (3, 4, 10) order by iid) a,
(select @cnt := 0, @iid := NULL) b) c
where cnt < 8;
обьясните мне что значит знак @
@cnt
вижу несколько вложенных запросов, так вот эти переменные с знаком @cnt относятся
как то к переменным без знака
Ответы
Ответ 1
Символом @ обозначаются локальные переменные в запросе. То есть мы говорим что это переменная, и уже дальше мы используем её значение.Ответ 2
И еще, локальные переменные объявляются с DECLARE(в процедурах) и обязательно задается тип переменной (VARCHAR,INT,etc),а @ обозначается глобальная переменная, то есть между процедурами можно использовать эти переменные,и плюс к этому у них конкретно не указывается тип данных,как и в пхп.
Комментариев нет:
Отправить комментарий