我試圖按今天的日期對我的數據進行排序,在我的列日期中存儲為 2020-08-18,因此如果設置的回調日期是今天的日期,我希望首先在頂部顯示這些結果。我試過$today = date("Y-m-d");
$records = $db->query("SELECT * FROM tbl WHERE status = 'Callback' ORDER BY callback_date LIKE '$today', id DESC LIMIT $start, $records_per_page");但它不起作用,有人可以幫忙嗎?謝謝
2 回答

慕姐8265434
TA貢獻1813條經驗 獲得超2個贊
您可以使用以下命令獲取當前日期,CURRENT_DATE
因此不需要'$today'
:
SELECT *?
FROM tbl?
WHERE status = 'Callback'?
ORDER BY callback_date = CURRENT_DATE DESC, id DESC?
LIMIT $start, $records_per_page
布爾表達式的callback_date = CURRENT_DATE計算結果為0forfalse和1for true,因此通過設置順序,DESC您可以將今天的行放在頂部。

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
您可以使用兩個內部查詢的 UNION,如下所示。
Select * from (
SELECT * FROM tbl WHERE status = 'Callback' and callback_date = '2020-08-18'
UNION
SELECT * FROM tbl WHERE status = 'Callback' and callback_date <> '2020-08-18'
ORDER BY callback_date, id DESC
)x LIMIT $start, $records_per_page
- 2 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消