首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 自定義排序:ORDER BY FIELD() 實戰

     編輯:MySQL 綜合教學

語法

ORDER BY FIELD(column, value1, value2, value3, ...)

按 value1, value2, value3... 指定的順序排序,未列出的值排在最後(按默認順序)。

實例

-- 訂單狀態自定義順序:已發貨(3) > 已付款(4) > 待付款(0) > 已取消(2) > 退款中(1)
SELECT * FROM orders 
ORDER BY FIELD(status, 3, 4, 0, 2, 1);

進階用法

  • 配合 CASE WHEN:更複雜的多條件排序
  • 多字段混合:ORDER BY FIELD(type, 'A','B'), create_time DESC
  • 性能:FIELD() 不走索引,大數據量建議應用層排序或添加排序權重列

對比

方案優點缺點
FIELD()語義清晰、SQL 簡潔不走索引、硬編碼值
CASE WHEN邏輯靈活冗長
排序權重列可索引、動態調整需維護額外列
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved