首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有特定行值的特定顺序的订单记录

具有特定行值的特定顺序的订单记录
EN

Stack Overflow用户
提问于 2017-12-24 00:57:04
回答 2查看 24关注 0票数 0
代码语言:javascript
复制
  Name     | Faction     |   Score
----------------------------------------
  Alpha    | Viva        |   7000
  Beta     | Rico        |   8000
  Bravo    | Morgan      |   9000
  Active   | Rico        |   10000
  Delta    | Edison      |   11000
  Siphon   | Viva        |   12000
  Taximus  | More        |   13000
  Ariticus | Viva        |   14000
  Ariticus | Havoc       |   15000

在这个表中,我尝试首先按特定Faction的数据排序,然后像下面的一样按Score DESC继续排序[它们都是

SELECT Name, Score FROM memebers WHERE type = all GROUP BY id ORDER BY Faction = 'Viva' DESC, Faction = 'Rico' DESC, Score DESC

我希望得到的是

代码语言:javascript
复制
  Name     | Faction     |   Score
----------------------------------------
  Ariticus | Viva        |   14000
  Siphon   | Viva        |   12000
  Alpha    | Viva        |   7000
  Active   | Rico        |   10000
  Beta     | Rico        |   8000
  Ariticus | Havoc       |   15000
  Taximus  | More        |   13000
  Bravo    | Morgan      |   9000

但我一直只得到Score DESC的订单。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-24 01:01:35

使用case表达式。

代码语言:javascript
复制
ORDER BY case when Faction = 'Viva' then 1
              when Faction = 'Rico' then 2
         else 3 end,
Score DESC
票数 5
EN

Stack Overflow用户

发布于 2017-12-24 01:11:24

对于mysql,如果派系值列表很小,并且可以在参数中提供,您也可以尝试ORDER BY FIELD(),如下所示:

代码语言:javascript
复制
SELECT Name, Score 
FROM memebers 
WHERE type = all 
GROUP BY id 
ORDER BY FIELD(Faction, 'Viva', 'Rico', 'Havoc', 'More','Morgan'), Score DESC;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47957275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档