У меня проблема с назначением Row_Number для моего выбора MySQL, в то время как назад я наткнулся на кусок кода, который предложил решение для этой ситуации.
Я попробовал код в консоли MySQL, и он работал хорошо. Но когда я попытался использовать его в своем приложении PHP как запрос с PDO, он вернул это "SQLSTATE[HY000]: General error"
,
Код выглядит следующим образом
SET @row_count= NULL;
SELECT ad_ID , rn from (
select ad_ID ,@row_count :=IFNULL (@row_count,0)+1 as rn
from ad_table
order by rn ) OT
WHERE rn IN (1, 10 ,20 );
Я проверил соединение Databse и все было в порядке. Что я делаю неправильно ?
И если это не подходящий способ решения этой проблемы, как я могу выполнить эту задачу?
Вам нужно использовать Exec () за 1 строку.
т.е.
$STH = $DBH->exec('SET @row_count= NULL');
затем
$sql ="SELECT id , rn from ( select id ,@row_count :=IFNULL (@row_count,0)+1 as rn from mytable order by rn ) OT WHERE rn IN (1, 10 ,20 )";
$STH = $DBH->query($sql);
Других решений пока нет …