我试图按今天的日期对我的数据进行排序,在我的列日期中存储为 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 关注
- 104 浏览
添加回答
举报
0/150
提交
取消