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

SQLを教えて下さい。limit 100で、先頭から100件ですが。これを先頭から50件と最後から50件を取得するように、(ひとつのクエリで)できませんか?
SqLite3を使っています。


●質問者: suzume_oyado
●カテゴリ:コンピュータ インターネット
✍キーワード:SQL ひとつ クエリ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● b19901108
●0ポイント

先頭から50件、最後から50件をunionで結合してはどうですか?

http://rktsqlite.sourceforge.jp/sqlite/manip.html

◎質問者からの返答

2回クエリして、unionという事でしょうか?

1回でやりたいのですが。


2 ● nzworks
●45ポイント

(select * from tbl_name limit 50) union all (select * from tbl_name order by col_name desc limit 50) order by col_name;

重かったらすみません;;

◎質問者からの返答

うーむ。やはり、2回走らせないと駄目でしょうか・・・。


3 ● natema
●45ポイント

unionを使う場合は、これで1回(1文)なんですよ。

SqLite3の場合、DBエンジンが貧弱なのでどんなとり方をしても

たいすてスピードは変りません。

◎質問者からの返答

それって、2回のSelectが走りませんか?

今はWhereやGroup byの条件が無いのでいいのですが、これが重くなると これを2回やりたくないのです。


4 ● y-kawaz
●0ポイント

UNIONによるクエリを1回とみなさないのでしたら出来ません。


速度が問題になっているのであればクエリの回数の問題ではなく、SQLiteの限界かDB設計の問題だと思います。

where句やorder byに使っているカラムにインデックスは設定してありますか?まずはその辺りを見直してみるべきだと思います。

◎質問者からの返答

>where句やorder byに使っているカラムにインデックスは設定してありますか

いや、だからそういう事ではなく。

関連質問


●質問をもっと探す●



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