[PHP-users 19431]Re: SQL文のSELECT項目を変換する正規表現について
k.watanabe
k.watanabe @ spclink.com
2003年 12月 19日 (金) 16:33:24 JST
k-wataです。
> 肝心な、対象DBMSは何ですか?
すみません、
PostgreSQL7.3.xとMySQL4.0.xです。
> OracleとかPostgreSQLとかの、from句でsub-selectが使えるDBMSなら、
> 項目の置き換えではなくて、
> select count(*) from (元のselect文) X
> で済むのではないかと思います。
省きすぎました。
PHPの作成画面としては、
1ページ20レコードで、ページ制御があります。
1ページに表示するレコードを制限するため
(上記のDBMSで)「LIMIT」句を使っています。
ただ、「LIMIT」を使っただけでは、総件数が取得できないため
「LIMIT」を含むSQLを実行する前に、「COUNT」で件数を取得しようと考えていまし
た。
実際には、あるクラスのメソッドに、引数として
・SQL(SELECT)文
・ページ数
・1ページの表示レコード数
を渡し、SQL文を実行するとき、
・「SELECT」文の項目を「COUNT」に変えて1回実行
・元のSQL文に「LIMIT」句を加えて1回実行
して、
1つのメソッドで「総レコード数」と、「20レコード分のデータ」を
取得したいと思い、「SELECT」文の項目を
「COUNT」文に変えられないかなと試行錯誤しています。
「pg_num_rows」「mysql_num_rows」等の関数もありますが、
レコードの取得件数が多くなると、ネットワークの負荷とかが気になりまして・・・。
--
k.watanabe
PHP-users メーリングリストの案内