我想按以下方式对数据库查询进行排序:
考虑到来自另一个字段的 String 属性,数值降序
类似于:
ORDER BY money DESC,
currency = 'EUR'
例子:
money | currency
-----------------------
200 | EUR
300 | USD
500 | USD
100 | EUR
400 | EUR
仅当 currency
等于 EUR
时,我才想对 money
进行降序排序。我不希望在排序时考虑其他货币,例如:
money | currency
-----------------------
400 | EUR
200 | EUR
100 | EUR
300 | USD
500 | USD
我不需要 EUR
之后的排序。可能是完全随机的
最佳答案
您可以在 order by
中使用多个键:
order by (currency = 'EUR') desc,
money desc
这将以降序排列剩余的货币。那是副产品。如果您特别希望它们是随机的:
order by (currency = 'EUR') desc,
(case when currency = 'EUR' then money end) desc,
rand()
但这似乎有点矫枉过正。
关于mysql - 条件分组 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51022988/