棘手的 MYSQL ORDER BY 子句

Tricky MYSQL ORDER BY clause

我有一个 table,其中包含名字、姓氏和跟进栏。我目前按以下顺序显示结果

ORDER BY followup IS NULL, followup asc, lastname

这会将有跟进的行放在最上面,跟进日期最接近今天的排在最前面。然后,如果后续日期为 NULL,则按姓氏排序。

我真正想要的是首先显示今天日期一周内的跟进,然后按姓氏显示 NULL 跟进,然后显示距截止日期超过一周的其余跟进。

不确定 MYSQL 是否可行,可能需要 PHP 中的自定义排序功能。

如有任何帮助,我们将不胜感激。

用例

order by case when followup is null then concat('2',lastname)
              when date_add(followup, interval 7 day) > current_date 
              then concat('1',lastName)
              else concat('3',lastName) end