我是PHP和MYSQL的新手。在学习中我遇到了一个问题
我有一个这样的表:
+----+----------+---------+
| time | name | number |
+----+----------+---------+
| 12.1 | google | 10 |
| 12.2 | yahoo | 15 |
| 12.3 | msn | 20 |
| 12.1 | google | 10 |
| 12.1 | google | 29 |
| 12.2 | yahoo | 10 |
+----+----------+---------+
但是我想要这样的桌子:
+----+----------+---------+
| time | name | number |
+----+----------+---------+
| 12.2 | yahoo | 15 |
| 12.3 | msn | 20 |
| 12.1 | google | 29 |
+----+----------+---------+
当时间和名称相同时,我想要最大序号的行,
我该怎么办?我很担心这个问题,谢谢你的回答
TRY(未测试)
SELECT `time`, `name`, `number`
FROM tbl
GROUP BY `name`,`time`
HAVING MAX(`number`)
提示:TIME是mysql的保留关键字,所以将它与`
包在一起,并在name
和time
列上创建索引
试试。
Select time, name, number from [table name] group by time, name having max(number)