MySQL DISTINCT/GROUP 通过 MAX()

MySQL DISTINCT/GROUP BY with MAX()

问题:我正在尝试拉取所有记录的列表,DISTINCT 使用该名称的最高添加时间戳编号按名称。我在 PHP fetch.

中使用所有结果列

有一个简单的数据库,记录如下:

---ID-------NAME-------VERSION-----------ADDED-------
|  500   |  TheSame   |    1    |  UNIX_TIMESTAMP() |
|  501   |  TheSame   |    2    |  UNIX_TIMESTAMP() |           
|  502   |  SameName  |    30   |  UNIX_TIMESTAMP() |
|  503   |  SameName  |    31   |  UNIX_TIMESTAMP() |
-----------------------------------------------------

ID是自增。尝试了很多不同的东西,可以让 DISTINCTGROUP BY 正常工作,但我最终得到了最低记录(例如:SameName 记录 #502 和版本 #30,当它应该是 #503 和版本 #31。

没有 JOIN 或这里发生的任何事情,所以这应该很简单。

试一试(获取最新版本号的可能方法:

SELECT NAME, COUNT(*) AS VERSION
FROM TABLENAME
GROUP BY NAME

如果以上不符合要求,试试这个:

SELECT * FROM 
(
    SELECT 
        NAME, ID, VERSION, ADDED
    FROM 
        TABLENAME
    ORDER BY 
        NAME, VERSION DESC, ID, ADDED 
) myAlias
GROUP BY NAME