这是取下一下的, select * from (select rownum rn, ID from table1 t where t.ID > 3 order by ID) where rn <= 1这是取上一个的, select * from (select rownum rn, ID from table1 t where t.ID < 3 order by ID desc) where rn <= 1其中的3是你所指定的ID
用的MySQL数据库的话可以这样写SQL: select @rownum:=@rownum+1 as rownum,s1 from t; 这是取下一下的, select * from (select @rownum:=@rownum+1 as rn, ID from table1 t where t.ID > 3 order by ID) where rn <= 1这是取上一个的, select * from (select @rownum:=@rownum+1 as rn rn, ID from table1 t where t.ID < 3 order by ID desc) where rn <= 1其中的3是你所指定的ID
rs.next();//下一条
rs.previous();//上一条
然后用rs.getString(列号或者列名);
Result我不是很清楚
加入你调用rs.next()读取一个记录A
那么连续2次调用previous()就可以得到记录A前面的记录
然后再连续3次调用next()得到的就是A后面的那条记录
select * from
(select rownum rn, ID
from table1 t
where t.ID > 3
order by ID)
where rn <= 1这是取上一个的,
select * from
(select rownum rn, ID
from table1 t
where t.ID < 3
order by ID desc)
where rn <= 1其中的3是你所指定的ID
rs.previous();//上一条
同意 简单 还实用 但是resultset 必须是可以移动的
rs.previous()先取上一条;
再两次rs.next();取一下条.
while(rs!=null)
if(rs.getString(id)==ID)
{
System.out.println(rs.previous().getString(id));
System.out.println(rs.next().next().getString(id));
}
指你取出的结果集里面还是表中的某条记录前面和后面那条记录的ID?
select @rownum:=@rownum+1 as rownum,s1 from t; 这是取下一下的,
select * from
(select @rownum:=@rownum+1 as rn, ID
from table1 t
where t.ID > 3
order by ID)
where rn <= 1这是取上一个的,
select * from
(select @rownum:=@rownum+1 as rn rn, ID
from table1 t
where t.ID < 3
order by ID desc)
where rn <= 1其中的3是你所指定的ID