[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 メーリングリストの案内