为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
小怪兽爱吃肉 2023-10-15 17:01:37
我试图按今天的日期对我的数据进行排序,在我的列日期中存储为 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您可以将今天的行放在顶部。


查看完整回答
反对 回复 2023-10-15
?
呼啦一阵风

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


查看完整回答
反对 回复 2023-10-15
  • 2 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信