[PHP-users 5428] Re: SQL:Select文で指定したx 行目を取り出す

Kazumasa Gotoh php-users@php.gr.jp
Fri, 15 Feb 2002 15:52:15 +0900


From: <kararin@zab.att.ne.jp>
Date: Fri, 15 Feb 2002 15:35:38 +0900

>  2ページ目はSelect文で、投稿番号の11〜20を表示したいのですが、「20まで」
> というのはできるものの「11から」ができなくて困っています。
>  一度DBから全ての要素を配列に組み込み、読み込むのはあまりに無駄だと思いま
> す。
> 
>  MySQLではLimitを使って簡単にできたのですが。。。

PosetgreSQL でも offset, limit を使って同じ事ができますが、Oracle
ではこのような指定はできません。記法が標準 SQL にはないものですしね…
この記法は PostgreSQL や MySQL の方言ですから。

Oracle でも Oracle8i 以降であれば、rownum というカラムを使っての範囲指定が
できますが、そちらでお使いになっているのは Oracle8 8.0.5 という事ですので
この方法は使えないですね。

8.0.5 にも rownum はありますが、order by などを組み合わせた場合の
rownum の値と順序性が保証できなくなるので今回の用途には向きません。

したがって 8.0.5 の場合は fetch の際に読み飛ばしをするしかないでしょう。
別に全ての要素を取り込む必要はないですが、まぁこれでも無駄だといえ
ば無駄が発生しますが…
全件を配列に取り込むようなまねをするよりはマシだと思います。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(株) セントラル情報センター
                             後藤和政    kgotoh@cic-kk.co.jp