为我的MySQL选择分配Row_Number

时间:2014-11-28 20:52:45

标签: php mysql pdo row-number

我有一个为我的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连接,没关系。我究竟做错了什么 ? 如果它不是解决这个问题的合适方法,我该如何完成这个任务?

1 个答案:

答案 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);