- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:select文について)
select文でデータの前後を取得する方法
このQ&Aのポイント
- select文を使用して、特定のデータの前後のデータを取得する方法について教えてください。
- 例えば、no列が6のデータの前後のデータを取得する方法が知りたいです。
- no列が変動する可能性があるため、no=3やno=7として固定できません。他の簡単な方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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)
その他の回答 (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;
質問者
お礼
丁寧に教えていただきありがとうございます。 教えていただいた方法で思った通りの操作が出来ました。 orでつなぐとか考えてなかったので、なるほどって感じです。 ほんとにありがとうございました。
お礼
回答ありがとうございます。 まだまだ勉強不足なのでmax minの方法があるのは知りませんでした…。 ちなみに、今回は2つの操作でそれぞれのnoを取得してますが、1つの操作で一度に2つのnoを取得する方法(今回の場合はnoが6の前後の3と7を取得)はありませんよね? 1回の操作で取得出来れば2つに分ける必要はないかと思ったので…。