我想使用以下SQL:
SELECT * FROM Data WHERE tid=1 ORDER BY CASE WHEN round=0 THEN date ELSE round, date END ASC
但由于
round, date
位而无法使用。如果我将该位设为round
,则可以正常工作但不能两者兼而有之。如果是
round=0
,那么我希望能够首先在round
上然后在date
上升序排列。那可能吗?我想要实现的是对行进行排序的数组,该数组首先在
round
上排序,然后在date
上排序。但是,如果round
为零,那么我只希望该行出现在该记录适合的日期之间,即使它的round
值为零。 最佳答案
可能使用几种情况,每列一个
SELECT *
FROM Data
WHERE tid=1
ORDER BY ( CASE WHEN round= 0 THEN date ELSE round END) ASC ,
( CASE WHEN round= 0 THEN NULL ELSE date END) ASC
关于mysql - MySQL CASE不适用于使用两列的ORDER BY,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49719830/