mysql 查询字段上一行或者下一行

lxq19851204 2010-02-04 12:14:29
mysql 查询某个字段的上一行或者下一行

...全文
361 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-02-08
  • 打赏
  • 举报
回复
mysql 查询某个字段的上一行或者下一行

什么是 某个字段 的上一行?

(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

lzsh0622 2010-02-08
  • 打赏
  • 举报
回复
MYSQL 也可以用自增列

可以试试:appy_Stone 的思路应该可行

lxq19851204 2010-02-04
  • 打赏
  • 举报
回复

小F mssql这样的语句是什么?
快乐_石头 2010-02-04
  • 打赏
  • 举报
回复
--MSSQL
select * from
(select top 1 * from tb where id>5 order by id asc)a
union all
select * from
(select top 1 * from tb where id<5 order by id desc)b
--小F-- 2010-02-04
  • 打赏
  • 举报
回复
MYSQL不会啊
快乐_石头 2010-02-04
  • 打赏
  • 举报
回复
N-M条记录
1.
select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入
set rowcount n
select * from 表变量 order by columnname desc


2.
select top n * from
(select top m * from tablename order by columnname) a
order by columnname desc


3.
如果tablename里没有其他identity列,那么:
select identity(int) id0,* into #temp from tablename

取n到m条的语句为:
select * from #temp where id0 >=n and id0 <= m

如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:
exec sp_dboption 你的DB名字,'select into/bulkcopy',true


4.
如果表里有identity属性,那么简单:
select * from tablename where identitycol between n and m
lxq19851204 2010-02-04
  • 打赏
  • 举报
回复
小F 帮忙一下

--小F-- 2010-02-04
  • 打赏
  • 举报
回复
MYSQL 帮顶
MS-SQL可以增加一个自增列来做
忆轩辕 2010-02-04
  • 打赏
  • 举报
回复
记录集是无序的,除非你指定某一列排序
jack15850798154 2010-02-04
  • 打赏
  • 举报
回复
不会,帮顶!!!

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧