我想显示最后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
Run Code Online (Sandbox Code Playgroud)
updated_at 是DATETIME
它显示最后5个条目按日期排序而不是按时间排序.在同一天,它按字母顺序排序.
假设我在同一日期有3个条目与diff时间
让我们说吧
Ajay 1/3/2012 1:15
John 1/3/2012 1:00
Bony 1/3/2012 1:10
Run Code Online (Sandbox Code Playgroud)
查询完上述查询后
我得到的是
Ajay 1/3/2012 1:15
Bony 1/3/2012 1:10
John 1/3/2012 1:00
Run Code Online (Sandbox Code Playgroud)
按日期排序,然后按字母顺序排序
我想要的是这个......
John 1/3/2012 1:00
Bony 1/3/2012 1:10
Ajay 1/3/2012 1:15
Run Code Online (Sandbox Code Playgroud)
按日期和时间排序......
ype*_*eᵀᴹ 67
如果您想要最后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
Run Code Online (Sandbox Code Playgroud)
在第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
Run Code Online (Sandbox Code Playgroud)
tar*_*riq 20
放UNIX_TIMESTAMP就可以了.
SELECT id, NAME, form_id, UNIX_TIMESTAMP(updated_at) AS DATE
FROM wp_frm_items
WHERE user_id = 11 && form_id=9
ORDER BY DATE DESC
Run Code Online (Sandbox Code Playgroud)
SELECT id, name, form_id, DATE(updated_at) as date
FROM wp_frm_items
WHERE user_id = 11 && form_id=9
ORDER BY date ASC
Run Code Online (Sandbox Code Playgroud)
“DESC”代表降序,但您需要升序(“ASC”)。