Mysql按日期desc选择顺序然后按列分组

时间:2016-08-03 10:47:41

标签: mysql phpmyadmin

嗨我想从日期desc中选择表格顺序而不是gruoup by smth。起初phpmyadmin给出一个错误(sql_mode = only_full_group_by)并且我通过从my.cnf中删除该标志来解决它并且我不知道这个修复程序是否长期有用,我读到某个地方,通过此修复,您可以获得不想要的结果我已经尝试了**select * from ( select * from log order by date desc) tmp group by imei**,但结果是从最早的日期开始,而不是从最新日期开始,它从第一个ID开始给我imei,而不是从最后一个开始。

2 个答案:

答案 0 :(得分:0)

对于分组结果,如果您已订购输入,则无关紧要。如果我正确地解释了您的问题,您希望获得每个imei的最新日志条目。你必须做这样的事情:

SELECT l1.*
  FROM logs as l1
  LEFT OUTER JOIN logs as l2
  ON l1.imei = l2.imei
    AND l1.date < l2.date
  WHERE l2.date IS NULL

你实际上要求的每个日志条目(l1)没有日志条目(l2)与相同的imei,但更大的日期。

如果你只想知道每个imei的最后一个日志条目是什么时候,这就足够了:

SELECT imei, MAX(date)
  FROM log
  GROUP BY imei

答案 1 :(得分:0)

SELECT * FROM log WHERE id in(SELECT max(id)FROM log group by imei)