我的数据库中有以下数据
|NO | name |exp | mod_date |
+---+-------+------+-------------------+
|1 | dede | 1 |2012-11-07 01:04:26|
|2 | dede | 10 |2012-11-07 01:05:42|
|3 | GoGo | 20 |2012-11-07 03:05:40|
|4 | baba | 23 |2012-11-07 05:22:50|
|5 | baba | 35 |2012-11-07 08:06:57|
|6 | baba | 50 |2012-11-08 06:32:13|
|7 | rara | 43 |2012-11-13 06:40:35|
我想获取每个名称的最后更新 mod_date :
|NO | name |exp | mod_date |
+---+-------+------+-------------------+
|2 | dede | 10 |2012-11-07 01:04:26|
|3 | GoGo | 20 |2012-11-07 03:05:40|
|6 | baba | 50 |2012-11-08 06:32:13|
|7 | rara | 43 |2012-11-13 06:40:35|
我尝试了这个解决方案,但没有成功( same question )
SELECT no,name,exp,max(date) FROM skill_exp
GROUP BY name
我从该查询中得到了这个结果
|NO | name |exp | mod_date |
+---+-------+------+-------------------+
|1 | dede | 1 |2012-11-07 01:05:42|
|3 | GoGo | 20 |2012-11-07 03:05:40|
|4 | baba | 23 |2012-11-07 05:22:50|
|7 | rara | 43 |2012-11-13 06:40:35|
最佳答案
子查询背后的想法是,它分别获取每个名称的最新(最大值)mod_Date
。然后将其结果连接回原始表以获得每行中的其他列。
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT name, MAX(mod_date) maxDate
FROM tableName
GROUP BY name
) s ON a.name = s.name AND
a.mod_date = s.maxDate
关于mysql - 从MySQL数据中获取最后的mod_date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14119166/