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

MySQLの質問です

何らかの条件でソートを行い、1つのデータを抽出した場合に前後のデータを1つずつ一緒に抽出したいのですが何か良い方法はありませんか?

現在は、選択したレコードの呼び出し、前、後ろと3回クエリを送信してデータを呼び出しています。

●質問者: black_kenchan
●カテゴリ:ウェブ制作
✍キーワード:MySQL クエリ ソート データ レコード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●35ポイント
SELECT * FROM テーブル WHERE コード番号 = 10
UNION
(SELECT * FROM テーブル WHERE コード番号 < 10 ORDER BY コード番号 DESC LIMIT 0,1)
UNION
(SELECT * FROM テーブル WHERE コード番号 > 10 ORDER BY コード番号 LIMIT 0,1)
;

MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.1.2 UNION 構文

◎質問者からの返答

今、自分が行っているクエリをまとめられるのですね!

有難うございます。

試してみます。


2 ● emu2929
●35ポイント

ユニークID等のカラムがあればbetweenでひっぱれるかと。


例)memberテーブルよりuidがxの会員データの前後を含めて引っ張る場合



SELECT * FROM member WHERE uid BETWEEN x - 1 and x + 1 ;

◎質問者からの返答

おっ、更にシンプルに出来るのですね!

有難うございます!

試してみます。

関連質問


●質問をもっと探す●



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