Php 请求SQL结果后,如何对其排序?

Php 请求SQL结果后,如何对其排序?,php,mysql,sql,datetime,sql-order-by,Php,Mysql,Sql,Datetime,Sql Order By,有没有办法在SQL结果交付后对其进行排序?到目前为止,我有两个价值观。“我的代码”当前返回结果,并可以按日期排序按日期排序ASC 感兴趣的数据库条目是 | date | weeks | | 2020-07-01 | 2 | | 2020-07-01 | 3 | | 2020-07-01 | 5 | 周表示距离下一个日期还有多少周。所以2020-07-21、2020-08-03等等(我可以返回这些值)。排序依据需要能够对日期进行排序,并考虑从最近一周到最远一

有没有办法在SQL结果交付后对其进行排序?到目前为止,我有两个价值观。“我的代码”当前返回结果,并可以按日期排序
按日期排序ASC
感兴趣的数据库条目是

| date       | weeks |
| 2020-07-01 | 2     | 
| 2020-07-01 | 3     |
| 2020-07-01 | 5     |
周表示距离下一个日期还有多少周。所以2020-07-21、2020-08-03等等(我可以返回这些值)。排序依据需要能够对日期进行排序,并考虑从最近一周到最远一周的周值

我试着用一个名为final_date的新字段来更新数据库,尽管这会让一切变得杂乱无章

返回数据后,我可以使用以下方法查找新日期:

$addWeeks = strtotime('+'.$numberOfWeeks.' weeks', strtotime($last));
尽管如此,我还是找不到一种方法来按照这个新值对结果进行排序

order by需要能够对日期进行排序,并考虑从最近一周到最远一周的周值

我想你想要:

select t.*
from mytable t
order by t.date + interval t.weeks week

注意,这假设列
date
date
数据类型,而不是字符串;否则,您需要首先使用
str_to_date()
将其转换为日期。

您是否真的以该格式存储日期以及日期是什么数据类型?@p.Salmon我的日期格式实际上是(2020-07-01)。日期是SQL数据库中的实际日期值始终确保示例数据的格式与实际数据的格式相同,以减少混淆和误解。我更新了问题以包含正确的数据格式@MagnusEriksson
7-08-2020
2020-07-01
格式不同。对这两个数据进行排序会使记录的顺序完全不同。