这样写: $sql = '你的sql查询指令'; $start = 1; //起始偏移 $pagesize = 20; //每页行数 $sqls =<<< SQL SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ($sql) A WHERE ROWNUM < $start+$pagesize ) WHERE RN >= $start SQL;$sqls 就是最终执行的查询语句
理解了,原来我的问题在于 不知道给union 的结果取个别名,谢谢版主大人~~最后结合百度 我是这样写的SELECT * FROM ( SELECT * , ROW_NUMBER() OVER (ORDER BY A DESC) AS rn FROM ($sql) AS s1 )AS s2 where rn between $from and $to
$sql = '你的sql查询指令';
$start = 1; //起始偏移
$pagesize = 20; //每页行数
$sqls =<<< SQL
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM ($sql) A
WHERE ROWNUM < $start+$pagesize
)
WHERE RN >= $start
SQL;$sqls 就是最终执行的查询语句
SELECT * , ROW_NUMBER() OVER (ORDER BY A DESC) AS rn
FROM ($sql) AS s1
)AS s2 where rn between $from and $to