猿问

如何通过匹配今天的日期对结果进行排序?

我试图按今天的日期对我的数据进行排序,在我的列日期中存储为 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");

但它不起作用,有人可以帮忙吗?

谢谢


小怪兽爱吃肉
浏览 106回答 2
2回答

慕姐8265434

您可以使用以下命令获取当前日期,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您可以将今天的行放在顶部。

呼啦一阵风

您可以使用两个内部查询的 UNION,如下所示。Select * from (&nbsp; SELECT * FROM tbl WHERE status = 'Callback' and&nbsp; callback_date = '2020-08-18'&nbsp; UNION&nbsp;&nbsp; SELECT * FROM tbl WHERE status = 'Callback' and&nbsp; callback_date <> '2020-08-18'&nbsp; ORDER BY callback_date, id DESC)x LIMIT $start, $records_per_page
随时随地看视频慕课网APP
我要回答