按照特定值对Mysql进行排序

7
假设我有以下查询:
SELECT id, name FROM table ORDER BY name
  • 4, Ashley
  • 1, Anna
  • 2, David
  • 3, Zach

我该如何将特定的姓名排在前面,然后再对其余进行排序,类似于:


SELECT id, name FROM table ORDER BY name='david', name
  • 1, David
  • 4, Ashley
  • 1, Anna
  • 3, Zach
1个回答

9
您已经接近目标了,您只需要添加desc即可:
SELECT id, name
FROM table
ORDER BY (name = 'david') DESC, name;

MySQL将布尔值作为整数处理,true表示为"1",false表示为"0"。 因此,当它为true时,该值为"1"。 要将其放在第一位,您需要按降序排序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接