簡體   English   中英

將兩個MySQL表列排序為一個

[英]Sorting Two MySQL Table Columns as One

我有2個不同的字段,這些字段將包含日期due_on_datedate_begin 如果其中一個沒有日期,則另一個會。

SELECT * 
  FROM table 
 WHERE this = 'that' 
 ORDER 
    BY due_on_date ASC
     , date_begin ASC

是否可以按這兩列進行排序,但可以將其作為一列?

例如

due_on_date具有這三個日期

01/01/20017
05/01/2017
08/01/2017

date_begin有這三個日期

02/01/2017
04/01/2017
07/01/2017

最終的排序順序看起來像

01/01/20017
02/01/2017
04/01/2017
05/01/2017
07/01/2017
08/01/2017

我不想做的是先按一個排序然后再按另一個排序,如果可以的話,我希望將語句排序為一列。

假設您要按最低非空值排序,

ORDER BY LEAST(
   IFNULL(due_on_date, NOW()+INTERVAL 10 year),
   IFNULL(date_begin, NOW()+INTERVAL 10 year)
)

你是這個意思嗎

SELECT * 
FROM table 
WHERE this = 'that' 
ORDER BY concat(date_format(due_on_date,'%Y-%m-%d'),date_format(date_begin,'%Y-%m-%d')) asc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM