下一条 select top 1 * from news where newsTime<(select newsTime from news where newsId=@Id) order by newsTime desc,newsId desc上一条 select top 1 * from news where newsTime>(select newsTime from news where newsId=@Id) order by newsTime asc,newsId asc
--创建存储过程: create proc p_tb_waynews @id bigint as select px=identity(int,1,1),* into # from (select top 100 percent * FROM news order by newsTime desc,newsId desc)c select a.*, bid=isnull(b.id,0),--上一篇的id nid=isnull(c.id,0) --下一篇的id from # a left join # b on b.px=a.px-1 left join # c on c.px=a.px+1 where a.id=@id
--调用就行了: exec p_tb_waynews 3
下一条 select top 1 * from news where newsTime <(select newsTime from news where newsId=@Id) order by newsTime desc,newsId desc 上一条 select top 1 * from news where newsTime> (select newsTime from news where newsId=@Id) order by newsTime asc,newsId asc --创建存储过程: create proc p_tb_waynews @id bigint as select px=identity(int,1,1),* into # from (select top 100 percent * FROM news order by newsTime desc,newsId desc)c select a.*, bid=isnull(b.id,0),--上一篇的id nid=isnull(c.id,0) --下一篇的id from # a left join # b on b.px=a.px-1 left join # c on c.px=a.px+1 where a.id=@id --调用就行了: exec p_tb_waynews 3都可以
如果是mssql数据库的话。 如果是mysql数据库的话。select * from news order by newsTime desc,newsId desc limit 1;select * from news order by newsTime asc,newsId asc limit 1; oracle 忘了 大同小异吧。你试试看,希望对你有帮助。
select top 1 * from news
where newsTime<(select newsTime from news where newsId=@Id)
order by newsTime desc,newsId desc上一条
select top 1 * from news
where newsTime>(select newsTime from news where newsId=@Id)
order by newsTime asc,newsId asc
--创建存储过程:
create proc p_tb_waynews
@id bigint
as
select px=identity(int,1,1),* into # from
(select top 100 percent * FROM news order by newsTime desc,newsId desc)c select a.*,
bid=isnull(b.id,0),--上一篇的id
nid=isnull(c.id,0) --下一篇的id
from # a left join # b on b.px=a.px-1
left join # c on c.px=a.px+1 where a.id=@id
--调用就行了:
exec p_tb_waynews 3
select top 1 * from news
where newsTime <(select newsTime from news where newsId=@Id)
order by newsTime desc,newsId desc 上一条
select top 1 * from news
where newsTime> (select newsTime from news where newsId=@Id)
order by newsTime asc,newsId asc
--创建存储过程:
create proc p_tb_waynews
@id bigint
as
select px=identity(int,1,1),* into # from
(select top 100 percent * FROM news order by newsTime desc,newsId desc)c select a.*,
bid=isnull(b.id,0),--上一篇的id
nid=isnull(c.id,0) --下一篇的id
from # a left join # b on b.px=a.px-1
left join # c on c.px=a.px+1 where a.id=@id
--调用就行了:
exec p_tb_waynews 3都可以
如果是mysql数据库的话。select * from news order by newsTime desc,newsId desc limit 1;select * from news order by newsTime asc,newsId asc limit 1;
oracle 忘了 大同小异吧。你试试看,希望对你有帮助。