3

「8787」を選択したときの前後のデータの取得方法を知りたい

これは、テーブル Name のサンプル データです。

NameId は自動採番ではありません。

NameID    RName
6767      Apple
8787      Hallow
8627      Orange

ありがとう

4

2 に答える 2

-1

CL.の回答に基づいて、すべてを1つのクエリで実行したい場合:

select a.*, 
  (select RName  
   from t1 b 
   where b.NameID < a.NameID 
   order by NameID desc limit 1) as prev_rname,
  (select NameID 
   from t1 b 
   where b.NameID < a.NameID 
   order by NameID desc limit 1) as prev_NameID,
  (select RName  
   from t1 c 
   where c.NameID > a.NameID 
   order by NameID asc  limit 1) as next_rname,
  (select NameID 
   from t1 d 
   where d.NameID > a.NameID 
   order by NameID asc  limit 1) as next_NameID
from t1 a
order by a.NameID;
于 2013-07-24T08:33:13.827 に答える