在MySQL 中對資料進行排序時,ORDER BY 子句可讓您自訂除預設升序或降序選項之外的排序順序。一個常見的挑戰是為列中的多個值定義特定的排序優先順序。
問題:
考慮下表:
ID | Language | Text |
---|---|---|
0 | ENU | a |
0 | JPN | b |
0 | DAN | c |
1 | ENU | d |
1 | JPN | e |
1 | DAN | f |
我們如何依照語言(首先是ENU,其次是JPN,最後是DAN)然後按升序對該表進行排序ID?
答案:
MySQL 提供了 FIELD() 函數,可以實現自訂排序順序。它接受一個值並檢查其在指定清單中的位置。使用此函數,我們可以定義所需的排序優先級,如下所示:
ORDER BY FIELD(Language, 'ENU', 'JPN', 'DAN'), ID
此查詢將按以下順序傳回資料:
a, d, b, e, c, f,等等
注意事項:
以上是如何在 MySQL 的 ORDER BY 子句中針對特定值自訂排序順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!