通过同一列的多个值对结果进行排序

eeeetee

我有一个查询,可根据其标题从数据库中获取联系人。它会查找多个标题,并且如果同一查询返回了多个联系人,我希望它们按特定顺序排列。这就是我的意思:

这是表的示例:

id   | name      | title              | email
-----+-----------+--------------------+------------------
1    | Bob       | General Manager    | [email protected]
2    | John      | President          | [email protected]
3    | Sue       | Owner              | [email protected]

我的查询是这样的:

SELECT * FROM tbl_contacts WHERE title IN ('General Manager', 'Owner', 'President')

如何使查询按特定顺序(或本例中标题的层次结构)返回结果?

我想要始终保持秩序的结果:

  1. 总经理
  2. 所有者
  3. 总统

例如,如果该实体没有总经理,那么我仍然希望保持相同的层次结构并返回:

  1. 所有者
  2. 总统
古尔温德·辛格

您要使用FIELD功能。它返回搜索字符串在给定字符串集中的位置。

select *
from tbl_contacts
where title in ('General Manager', 'Owner', 'President')
order by field(title, 'General Manager', 'Owner', 'President')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章