ORDER BY 子句可以使用FIELD() 函数为列中的值定义自定义的排序顺序。
例如下表:
+----------------+
| orders |
+----------------+
| orderNumber |
| orderDate |
| requiredDate |
| shippedDate |
| status |
| comments |
| customerNumber |
+----------------+
如果要按以下顺序对订单状态进行排序:
- In Process
- On Hold
- Canceled
- Resolved
- Disputed
- Shipped
则可以使用 FIELD 函数将这些值映射到数值列表,并使用这些数字进行排序:
SELECT
orderNumber, status
FROM
orders
ORDER BY FIELD(status,
'In Process',
'On Hold',
'Cancelled',
'Resolved',
'Disputed','Shipped');
运行结果:
+-------------+------------+
| orderNumber | status |
+-------------+------------+
| 10420 | In Process |
| 10421 | In Process |
| 10422 | In Process |
| 10423 | In Process |
| 10424 | In Process |
| 10425 | In Process |
| 10334 | On Hold |
| 10401 | On Hold |
...
通过ORDER BY子句结合FIELD()函数,可以在MySQL中实现列值的自定义排序。例如,针对订单状态'In Process', 'On Hold', 'Canceled', 'Resolved', 'Disputed', 'Shipped',可以定义它们的排序顺序并进行相应的查询操作。"
79610655,5074543,前端调试:外层div高度为0引发的显示问题,"['前端开发', 'HTML', 'CSS', 'JavaScript', '调试']
1219

被折叠的 条评论
为什么被折叠?



