如何在MySQL中使用条件ORDER BY?
作者:互联网
我有桌面课程,我们有一些字段,还有字段课程(字符串),收藏(bool),favoritedDate(dateTime),dateUpload.
教师上传课程,该日期存储在dateUpload字段中.如果教师将此课程标记为收藏此信息,则该字段中的数字1是收藏的,并且标记的日期存储在字段favoritedDate中.
现在我需要从特定教师检索所有课程,然后按日期排序列表:如果课程被标记为favited = 1应按favoritedDate,dateUpload desc排序,如果favorited = 0,则只能通过dateUpload desc进行排序.
这是我到目前为止,但它没有工作:
SELECT * from courses where teacherId = 23
ORDER BY
CASE favorited WHEN 1 THEN favoritedDate, dateUpload
else dateUpload
END
DESC
;
知道怎么解决这个问题吗?
解决方法:
case表达式返回原子值,因此您无法返回:
favoritedDate, dateUpload
我想这会做你想要的:
ORDER BY
CASE favorited WHEN 1 THEN favoritedDate
ELSE dateUpload
END DESC, dateUpload
标签:mysql,condition,order-by 来源: https://codeday.me/bug/20190806/1595991.html