У меня есть запрос, в котором есть набор. как я могу использовать этот запрос в php?
результат правильный в phpmyadmin
или верстак, но нет ответа в php
код.
set @num := 0, @ci := -1;
select currency_id,buy,sell
from
(select *,
@num := if(@ci = currency_id, @num + 1, 1) as gp_number,
@ci := currency_id as dummy
from currency_price
order by `currency_id`, cu_date desc,buy,sell) x
where gp_number=2
order by currency_id
когда я хочу положить его в $conn->query
это ничего не делает.
я пробую много способов но не могу
@RamRaider прав. У вас есть два запроса здесь. Первая строка в верхней части вашего примера с set
операции, а второй сам запрос.
phpmyadmin, когда встречает список запросов, вежливо запускает их один за другим. Но разные php MySQL API этого не делают. Вы должны выполнить каждый запрос с отдельным использованием $conn->query()
,
Или вы можете изменить его так, чтобы он соответствовал только одному запросу. В MySQL диалект это:
SET @a :=1 ;
SET @b := 1;
SELECT @a := a+1 a,
@b := b-1 b,
col, col, col
FROM table
может быть изменен путем присоединения к «таблице» инициализации следующим образом:
SELECT @a := a+1 a,
@b := b-1 b,
col, col, col
FROM table
JOIN (SELECT @a := 1, @b := 1) init
Пока у этого JOIN нет ON
В этом случае планировщик запросов выполняет выбор инициализации только один раз.
Других решений пока нет …