小编典典

按日期和时间降序排序?

mysql

我要显示的最后5个输入的特定ID数据。我的SQL查询是

SELECT id, name, form_id, DATE(updated_at) as date
  FROM wp_frm_items
  WHERE user_id = 11 && form_id=9
  ORDER BY updated_at DESC

updated_at 是DATETIME

它显示按日期而非时间排序的最后5个条目。然后在同一日期按字母顺序排序。

假设我在同一日期有3个条目,并带有差异时间

比方说

Ajay 1/3/2012 1:15
John 1/3/2012 1:00
Bony 1/3/2012 1:10

查询以上查询后

我得到的是

Ajay 1/3/2012 1:15
Bony 1/3/2012 1:10
John 1/3/2012 1:00

按日期排序,然后按字母顺序

我想要的是这个..

John 1/3/2012 1:00
Bony 1/3/2012 1:10
Ajay 1/3/2012 1:15

还按日期和时间排序…


阅读 2874

收藏
2020-05-17

共1个答案

小编典典

如果要最后5行(以升序排列),则需要一个子查询:

SELECT *
FROM
    ( SELECT id, name, form_id, DATE(updated_at) AS updated_date, updated_at
      FROM wp_frm_items
      WHERE user_id = 11 
        AND form_id=9
      ORDER BY updated_at DESC
      LIMIT 5
    ) AS tmp
ORDER BY updated_at

第10次阅读问题后,这可能是(也许)您想要的。按日期顺序降序,然后按时间(同一日期)升序:

SELECT id, name, form_id, DATE(updated_at) AS updated_date
FROM wp_frm_items
WHERE user_id = 11 
  AND form_id=9
ORDER BY DATE(updated_at) DESC
       , updated_at ASC
2020-05-17