#mysql #sql #subquery #mysql-dependent-subquery
Вопрос:
Я пытался понять следующий код. Я думаю, что первый подзапрос создаст таблицу с 2,3,4,5,6. Для второго подзапроса, я думаю, он будет выполняться следующим образом. Например, поскольку начальное значение @делителя равно 1, для nn=2 выполняется условие, при котором @num2 Поскольку условие where все еще действует, оператор select будет выполнен снова, чтобы значение @divisor было равно 3. В это время условие where недопустимо, оператор select остановится.
Исходя из этого понимания, я думаю, что результат кода должен быть 2,3,4,5,6, а конечное значение @divisor будет равно 6. Однако, когда я запускаю код в mysql, результат равен нулю. Никаких записей.
Кто-нибудь может мне с этим помочь? Большое спасибо.
set @num:=2;
set @num2:=1;
select nn from
(select @num:=@num 1 as nn from
information_schema.tables t1, information_schema.tables t2
where @num<=5) a
where nn in
(select @num2:=@num2 1 from
information_schema.tables t3, information_schema.tables t4
where @num2<=nn)
Комментарии:
1. MySQL не предоставляет никаких гарантий порядка обработки выражений. Кроме того, назначение переменных в
SELECT
запросе теперь устарело. Потратьте свои усилия на изучение чего-то полезного.