如何通过其中一行订购MySQL?

时间:2016-10-14 10:51:13

标签: php mysql

使用简单的mysqli_query,我可以从数据库中检索所有任务。每个任务都有一个截止日期。我想计算每个单独任务剩下多少天。完成后,我想根据剩下的日期订购所有任务。我怎样才能做到这一点?我有这么简单的代码来完成所有任务:

$sql = mysqli_query($mysqli, "SELECT * FROM tasks");
while($rows=mysqli_fetch_array($sql,MYSQLI_ASSOC)){
   $deadline = $rows['deadline'];
   $today = strtotime('now');
   $date_diff = $deadline - $today;

   echo $date_diff;
}

但我如何通过$ date_diff订购它们?

2 个答案:

答案 0 :(得分:1)

您可以在sql查询中执行此操作。

$sql = mysqli_query($mysqli, "SELECT TIMEDIFF(deadline, CURRENT_TIME) as date_diff FROM tasks ORDER BY TIMEDIFF(deadline, CURRENT_TIME)");

答案 1 :(得分:-1)

您可以在mysqlORDER BY执行此减号操作。这是你如何做到的,

$sql = mysqli_query($mysqli, "SELECT * FROM tasks ORDER BY (deadline-UNIX_TIMESTAMP())") DESC;

我们已使用UNIX_TIMESTAMP()获取当前时间戳并从截止日期中扣除。

在查询结束时,我们使用了DESC关键字,该关键字将按降序排列天数。