• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:select文について)

select文でデータの前後を取得する方法

このQ&Aのポイント
  • select文を使用して、特定のデータの前後のデータを取得する方法について教えてください。
  • 例えば、no列が6のデータの前後のデータを取得する方法が知りたいです。
  • no列が変動する可能性があるため、no=3やno=7として固定できません。他の簡単な方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

mysql5以上だと考えてよろしいですね? select no,name,address from address where no=(select max(no) from address where no<6) select no,name,address from address where no=(select min(no) from address where no>6)

hana43
質問者

お礼

回答ありがとうございます。 まだまだ勉強不足なのでmax minの方法があるのは知りませんでした…。 ちなみに、今回は2つの操作でそれぞれのnoを取得してますが、1つの操作で一度に2つのnoを取得する方法(今回の場合はnoが6の前後の3と7を取得)はありませんよね? 1回の操作で取得出来れば2つに分ける必要はないかと思ったので…。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

or でつなぐとか? select no,name,address from address where no=(select max(no) from address where no<6) or no=(select min(no) from address where no>6) また、6も拾っていいならlimitで処理しても select no,name,address from address where no>=(select max(no) from address where no<6) order by no limit 3;

hana43
質問者

お礼

丁寧に教えていただきありがとうございます。 教えていただいた方法で思った通りの操作が出来ました。 orでつなぐとか考えてなかったので、なるほどって感じです。 ほんとにありがとうございました。

関連するQ&A