MySQL-取某个字段表中每组几行数据
因开发要求,对某张有多组数据表,对其每个组中取前几行数据sql:
形式如下:
create table tbl(
Id int(11) not null auto_increment,
type int(11) not null,
name char(1) not null,
primary key(Id),
key idx_type(type)
)engine=InnoDB default charset=utf8;
insert into tbl(type,name)values(1,'aa');
insert into tbl(type,name)values(1,'ab');
insert into tbl(type,name)values(1,'ac');
insert into tbl(type,name)values(2,'ad');
insert into tbl(type,name)values(2,'ac');
insert into tbl(type,name)values(2,'ae');
insert into tbl(type,name)values(3,'ax');
insert into tbl(type,name)values(4,'ag');
insert into tbl(type,name)values(3,'ad');
.....
sql如下:
如每组数据的前2行,若有其他方法,烦请各位分享..
select a.*
from tbl a
where 2>(select count(0) from tbl b where a.type=b.type and a.Id>b.Id);
end---
因开发要求,对某张有多组数据表,对其每个组中取前几行数据sql:
形式如下:
create table tbl(
Id int(11) not null auto_increment,
type int(11) not null,
name char(1) not null,
primary key(Id),
key idx_type(type)
)engine=InnoDB default charset=utf8;
insert into tbl(type,name)values(1,'aa');
insert into tbl(type,name)values(1,'ab');
insert into tbl(type,name)values(1,'ac');
insert into tbl(type,name)values(2,'ad');
insert into tbl(type,name)values(2,'ac');
insert into tbl(type,name)values(2,'ae');
insert into tbl(type,name)values(3,'ax');
insert into tbl(type,name)values(4,'ag');
insert into tbl(type,name)values(3,'ad');
.....
sql如下:
如每组数据的前2行,若有其他方法,烦请各位分享..
select a.*
from tbl a
where 2>(select count(0) from tbl b where a.type=b.type and a.Id>b.Id);
end---
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26855487/viewspace-761427/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26855487/viewspace-761427/