私はDB2を使用しているので、データベースの一部を途中で選択するために(制限/オフセットのペアリングなど)、別の種類の準備ステートメントを実行する必要があります。私が与えられた例はこれでした:
SELECT * FROM(SELECT col1、col2、col3、ROW_NUMBER()OVER()AS RN FROM table)AS cols WHERE RN BETWEEN 1 AND 10000;
私はこれに適応しました:
SELECT * FROM(SELECT ROW_NUMBER()OVER(ORDER BY 2,3,4,6,7 ASC)AS rownum FROM TRANSACTIONS)AS foo WHERE rownum> = 500 AND rownum <1000
そして、fetchall_arrayref()を呼び出すと、希望どおりに500の結果が得られますが、取得するすべてのデータではなく、行番号への参照を含む配列のみが返されます。私はそれがコードが書かれたとおりに行われると想定されていることを知っています、そして私は運がなくて私の望ましい結果を得るためにたくさんの順列を試しました。
私が欲しいのは、前のprepareステートメントのようなすべての列を配列の配列に取り込むことです:SELECT * FROM TU_TRANSACTIONS ORDER BY 2、3、4、6、7
しかし、指定されたセクションだけです。私が見逃している根本的なものがあり、それを見ることができません。
建設的な批判と相まって、どんな助けでもありがたいです。