我有2个不同的字段,这些字段将包含或将包含日期1000000
和due_on_date
。如果其中没有日期,则另一个会。
date_begin
是否可以按这两列排序,但作为一列?
例如
due_on_date有这三个日期
SELECT *
FROM table
WHERE this = 'that'
ORDER
BY due_on_date ASC
, date_begin ASC
date_begin有这三个日期
01/01/20017
05/01/2017
08/01/2017
最终的排序顺序看起来像是
02/01/2017
04/01/2017
07/01/2017
我不想做的是先按一个对另一个进行排序,如果有意义,我希望将该语句排序为一列。
答案 0 :(得分:2)
假设您的意思是要按最低的非空值排序,
ORDER BY LEAST(
IFNULL(due_on_date, NOW()+INTERVAL 10 year),
IFNULL(date_begin, NOW()+INTERVAL 10 year)
)
答案 1 :(得分:0)
你是说这个吗?
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