[英]mysql like query, how can you sort targeting two columns in a table but sorting by the results matched by one column
[英]Sorting Two MySQL Table Columns as One
我有2個不同的字段,這些字段將包含日期due_on_date
和date_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.