MySQL:按特定字段排序

MySQL:按特定字段排序,mysql,sql-order-by,Mysql,Sql Order By,第一个问题非常尖锐:) 我需要按特定的部门类型或部门进行排序,然后是排名。 按职级、部门类型和部门默认设置订单。前端是PHP,但如果可能的话,我正在寻找更多的SQL修复程序。如果子查询可以工作,我还有一个部门的源表 原表: +-----------+------------+------+ | Dept_Type | Department | Rank | +-----------+------------+------+ | Inbound | Dept R | 1 | |

第一个问题非常尖锐:)

我需要按特定的部门类型或部门进行排序,然后是排名。 按职级、部门类型和部门默认设置订单。前端是PHP,但如果可能的话,我正在寻找更多的SQL修复程序。如果子查询可以工作,我还有一个部门的源表

原表:

+-----------+------------+------+
| Dept_Type | Department | Rank |
+-----------+------------+------+
| Inbound   | Dept R     |   1  |
| Outbound  | Dept P     |   2  |
| Inbound   | Dept E     |   3  |
| Outbound  | Dept D     |   4  |
| Outbound  | Dept D     |   5  |
| Outbound  | Dept D     |   6  |
+-----------+------------+------+
我需要指定按“D部门”、“E部门”订购,然后是其他类似的内容:

SELECT * 
FROM table 
ORDER BY FIELD(department, "Dept D", "Dept E"), Rank, Dept_Type, Department
我希望它返回的内容(DDDERP):

它实际返回的内容(RPDDDE):

所以理论上我想:

ORDER BY FIELD("Dept D", "Dept E", department), Rank

但它显然不是这样工作的。感谢您花时间查看此文档。

使用DESC属性:


按字段排序(部门、'Dept E'、'Dept D')描述、等级、部门类型、部门

天哪,简直太简单了。谢谢
+-----------+------------+------+
| Dept_Type | Department | Rank |
+-----------+------------+------+
| Inbound   | Dept R     |   1  |
| Outbound  | Dept P     |   2  |
| Outbound  | Dept D     |   4  |
| Outbound  | Dept D     |   5  |
| Outbound  | Dept D     |   6  |
| Inbound   | Dept E     |   3  |
+-----------+------------+------+
ORDER BY FIELD("Dept D", "Dept E", department), Rank