mysql 如果查询 相同 ID 的 某数据 后面5个数据

mysql 如果查询 相同 ID 的 某数据 后面5个数据,第1张

语句如下:

drop procedure if exists test

create procedure test(num int)

begin

drop table if exists tmp

create temporary table tmp(id int,v1 varchar(5),v2 varchar(5))

set @done=0

repeat

if (select v1 from d where id=num)='x' then

insert into tmp select * from d where id=num

set @done=@done+1

set num=num+1

else

set num=num+1

end if

until @done>=3

end repeat

select * from tmp

end

call test(3)

思路:

假设3列的列名为id,v1,v2,表名为d,先建立一个临时表tmp,再对d表进行if查询并且从id=3的条件开始,如果该行符合v1=x条件则插入临时表tmp并将done+1,不如符合则将id+1(也就是查询下一行),当插入了符合条件的数量>=3后结束循环并显示tmp表的内容。

select * from student limit 5

select * from student limit 0,5

select * from student order by id asc limit 5

前五条记录的查询语句。

查询后5条,注意结果为倒序排序,要使用desc

select * from student order by id desc limit 5

select * from student limit m,n

返回m+1到m+n行记录,m代表开始的下标,n代表查找的结果数,将返回n行结果

select * from student limit 2,8返回3到10行记录

select * from userlist order by id desc limit 5

说明:id是自增id的情况下用这个,当然也可用插入时间来排序例如这样:

select * from userlist order by created_at desc limit 5


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7444002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存