我有一个为我的MySQL选择分配Row_Number的问题,而前一段时间我遇到了一段为这种情况提出解决方案的代码。
我在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连接,没关系。我究竟做错了什么 ? 如果它不是解决这个问题的合适方法,我该如何完成这个任务?
答案 0 :(得分:1)
您需要将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);