MySQL DISTINCT / GROUP BY与MAX()

时间:2016-03-09 19:05:13

标签: php mysql sql group-by distinct

问题:我正在尝试使用该名称的最高添加时间戳编号,通过名称提取所有记录的列表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或此处发生的任何事情,所以这应该非常简单。

1 个答案:

答案 0 :(得分:1)

尝试此尝试(获取最新版本号码的可能方法:

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