PHP がページングで SQL Server 2008 からデータを取得できるようにしたいです。
1. MySQL は n,m を制限できますが、SQL サーバーは制限できません
2. ページングで結合後のデータを取得したいのですが、便利な rownum と先頭を見つけました。インターネット、ユニオンの組み合わせ実装でどのように取得できますか
私の結果セットは
(select A,B,C,D from t1) union (select '100' as A ,B,C,D from t2) union (select A,B,C,D from t3)
次のように書きます:
$sql = '你的sql查询指令';$start = 1; //起始偏移$pagesize = 20; //每页行数$sqls =<<< SQLSELECT * FROM (SELECT A.*, ROWNUM RN FROM ($sql) A WHERE ROWNUM < $start+$pagesize)WHERE RN >= $startSQL;
わかりました、私の問題は、union の結果にエイリアスを与える方法がわからないことであることがわかりました。モデレーターありがとうございます~~
最後に、Baidu と組み合わせて、このように書きました
SELECT * FROM ( SELECT * , ROW_NUMBER() OVER (ORDER BY A DESC) AS rn FROM ($sql) AS s1)AS s2 where rn between $from and $to