order by在mysql中位置_如何在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值