人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP+PostgrSQLについて教えてください。

数万レコードの中からある言葉を含む行を取り出したいのですが

このようにすると一致するレコードが多い場合はメモリが足らないと言ってエラーになります。
$result = pg_query(SELECT data1, data2, data3, FROM table WHERE data1 ~'キーワード'");

かといってこのようにすると一致した総レコード数を知ることができません。
$result = pg_query(SELECT data1, data2, data3, FROM table WHERE title ~'キーワード' LIMIT 20 OFFSET 0");

どの様に書けば一致総数の取得と検索を同時に行えるのでしょうか?

よろしくお願いします。

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP SELECT エラー キーワード メモリ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● vector
●30ポイント

LIMIT x OFFSET x * y

でページャーみたいにして、レコード総数を足し算するのはいかがでしょうか?


free_resultを使って結果を解放しながら処理すれば、メモリオーバーにもならないかと。


結果セットも使うのであれば、配列に全部格納しておいて、総数を取得してからゆっくり処理する感じで。

◎質問者からの返答

ありがとうございます

初心者の私には理解ができませんでした^^;


2 ● hive7134
●50ポイント

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/psql_k07.htm

SELECT count(*) FROM table WHERE ?;

を別途実行するのがすっきりしていていいのではないでしょうか!

◎質問者からの返答

ありがとうございます

初心者の私には理解ができませんでした^^;

やはりこれが良いのでしょうか?

最初このようにしてみたのですが、2回SELECTを使うのがどうなのかと思いその他の方法を探していました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ