+ -
当前位置:首页 → 问答吧 → 求一条mysql的语句

求一条mysql的语句

时间:2010-07-14

来源:互联网

使用下面的语句,创建数据库。
create table t2 (
id int primary key,
gid char,
col1 int,
col2 int
) engine=myisam;

insert into t2 values
(1,'A',31,6),
(2,'B',25,83),
(3,'C',76,21),
(4,'D',63,56),
(5,'E',3,17),
(6,'A',29,97),
(7,'B',88,63),
(8,'C',16,22),
(9,'D',25,43),
(10,'E',45,28),
(11,'A',2,78),
(12,'B',30,79),
(13,'C',96,73),
(14,'D',37,40),
(15,'E',14,86),
(16,'A',32,67),
(17,'B',84,38),
(18,'C',27,9),
(19,'D',31,21),
(20,'E',80,63),
(21,'A',89,9),
(22,'B',15,22),
(23,'C',46,84),
(24,'D',54,79),
(25,'E',85,64),
(26,'A',87,13),
(27,'B',40,45),
(28,'C',34,90),
(29,'D',63,8),
(30,'E',66,40),
(31,'A',83,49),
(32,'B',4,90),
(33,'C',81,7),
(34,'D',11,12),
(35,'E',85,10),
(36,'A',39,75),
(37,'B',22,39),
(38,'C',76,67),
(39,'D',20,11),
(40,'E',81,36);

下面的查询语句
select * from t2 group by gid;
输出的是:
+----+------+------+------+
| id | gid | col1 | col2 |
+----+------+------+------+
| 1 | A | 31 | 6 |
| 2 | B | 25 | 83 |
| 3 | C | 76 | 21 |
| 4 | D | 63 | 56 |
| 5 | E | 3 | 17 |
+----+------+------+------+
5 rows in set (0.00 sec)
为何不输出下面:
| id | gid | col1 | col2 |
+----+------+------+------+
| 6 | A | 29 | 97 |
| 7 | B | 88 | 63 |
| 8 | C | 16 | 22 |
| 9 | D | 25 | 43 |
| 10 | E | 45 | 28 |
+----+------+------+------+

作者: 罗非鱼   发布时间: 2010-07-14

+----+------+------+------+
| id | gid | col1 | col2 |
+----+------+------+------+
| 1 | A | 31 | 6 |
| 2 | B | 25 | 83 |
| 3 | C | 76 | 21 |
| 4 | D | 63 | 56 |
| 5 | E | 3 | 17 |
+----+------+------+------+
id 1 ...是 (gid=A group)里的第一个
id 2 ...是 (gid=B group)里的第一个
...
以此类推

如果想显示group里的最后一个
可以这样select * from t2 group by gid desc;

作者: gzbao9999   发布时间: 2010-07-16

不明白LZ用这个命令想查询什么,GROUP BY一般用来计数,按你的语句,有8种输出可能,每5行就是一种可能,你所说的结果也是符合的,但输出只输出第一种

作者: baicai271   发布时间: 2010-07-23