关于mysql数据给定范围查询的问题

我跑的快 2013-11-01 09:27:56
想实现查询id号必须从1到18的数据,也就是说必须是从1到18连续出现的id才被选取,从2到18的或从n(2<=n<=18)到m(m!=18)的数据以及中间出现中断的数据均不被选取
...全文
176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
我跑的快 2013-11-01
  • 打赏
  • 举报
回复
以数据为例 id describe 备注(想要取出的结果后标*) 2 string 3 string 4 string 5 string 1 string * 2 string * 3 string * 4 string * 5 string * 3 string 4 string 5 string 就是想把上述结果中id从1到5连续的数据取出(想要的结果后标*)
rucypli 2013-11-01
  • 打赏
  • 举报
回复
可以考虑取差值?
WWWWA 2013-11-01
  • 打赏
  • 举报
回复
用你上述数据,要求结果是什么?
没有明白
我跑的快 2013-11-01
  • 打赏
  • 举报
回复
create table test (id bigint, describe varchar(100)); insert into test (id,describe) values(记录号,记录描述); 记录号连续出现,但是起始点和终止点不同,例如有从3到15的连续数据,后面也会有从4到9的连续数据,例表如下: id describe 1 string 2 string 3 string 2 string 3 string 6 string 3 string 4 string 5 string 6 string 7 string 9 string 10 string 想要的结果是从中选取id从3连续到18的数据
WWWWA 2013-11-01
  • 打赏
  • 举报
回复
贴建表及插入记录的SQL,及要求结果出来看看
我跑的快 2013-11-01
  • 打赏
  • 举报
回复
大神不愧是大神,我先试试,等有问题再向您请教
WWWWA 2013-11-01
  • 打赏
  • 举报
回复
SET @a=0; SET @b=0; SELECT * FROM TTQA; SELECT id-1 INTO @a FROM ttqa LIMIT 1; UPDATE TTQA A INNER JOIN ( SELECT PM,MIN(ID1) AS MI,MAX(ID1) AS MX FROM ( SELECT *, @b:=IF( @a+1=id ,@b,@b+1) AS PM, @a:=ID FROM ttqa) G GROUP BY PM HAVING COUNT(*)>=5) C ON A.`id1` BETWEEN MI AND MX SET A.`备注`='*'; SELECT * FROM TTQA

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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