- ベストアンサー
検索結果を指定件数ずつ抽出表示したい。
データベース(以下、DB)は、SQLite2です。 PHPスクリプトの中で利用しています。 なお、本質問はMySQLとして説明して頂いても結構です。 (恐らく、同じような方法で解決できると思いますので。) 考え方が分かりましたら、あとは自分で調べられますので、 その方向性だけを示して下さるというのでも結構です。 さて、質問に移らせて頂きますが、 DBに検索をかけ、ヒットしたレコードを、 ある特定のカラムをもとにソートし、その中の上から指定件数分抽出する ということをしたいと考えています。 例をあげます。 テーブル名(tbl_siritori) id word cate 1 りんご 食べ物 2 ごりら 動物 3 らくだ 動物 4 ダック 動物 5 くり 食べ物 6 リス 動物 7 スイカ 食べ物 8 カメ 動物 9 メロン 食べ物 というDBがあったとして、 このDBに、[cate]に「食」という文字が入っているようなデータを、 [id]順に見て、大きな数字のものを上から3件抽出したい場合、 どのような方法(SQL文)が考えられますか。 3件のデータを表示した後、 さらにそれに続く3件のデータを次ページに表示、 さらにそれに続く3件も同様にさらに次ページに表示…(略) ということをしようと思っています。 1ページに3件、で、何ページにも渡ってデータを3件ずつ出力していく、ということです。 以上のことを実現可能であるSQL文の中でも、 最も一般的なものを教えて下さい。 $query = "SELECT * FROM tbl_siritori WHERE (cate LIKE '%食%') ~~ごにゃごにゃ~~ ORDER BY id DESC"; というような書き方で、1文で解決できるものと思っていますが、 複数の文で絞り込むような形になるのでしょうか。 以上、よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- chukenkenkou
- ベストアンサー率43% (833/1926)
- chukenkenkou
- ベストアンサー率43% (833/1926)
- mako_tyo
- ベストアンサー率37% (61/161)
お礼
ありがとうございました(^^) また何かありましたら、教えて下さいね。
補足
さらなるアドバイスをありがとうございます! select ~ from t1 [where 検索条件] ORDER BY ソートの指定 LIMIT 0,3 これで、出来ました! まさに、このまんまで! (ちなみに、indexは今のところ使用していません) とても助かりました。 出来ないものと思っていたので、嬉しいです~。^^ どうもありがとうございました!