Пользовательские переменные можно задавать через 'set', а можно ли прям внутри, к примеру select, задать переменную, что называется, на лету?
Видел простейший пример SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3, но я не хочу их выбирать, я хочу их использовать в запросе, выполнять с ними операции.
Для примера хочу брать каждый пятый товар из базы, как мне задать @a внутри этого запроса?
select * from products where (@a:=@a+1) % 5 = '0'
Я понимаю, что это можно сделать по id товара или каким-то другим способом, интересует не решение запроса, а ответ на мой вопрос.
Присваеваем @a ноль, если ещё не существует; сравниваем с -1, чтобы всегда выполнялось. Объединить в один IF не получится, в переменных хватает своей магии.