#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),а @ обозначается глобальная переменная, то есть между процедурами можно использовать эти переменные,и плюс к этому у них конкретно не указывается тип данных,как и в пхп.
Комментариев нет:
Отправить комментарий