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 5select * 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欢迎分享,转载请注明来源:内存溢出
评论列表(0条)