MySQL如何實作字母數字字串的自然排序?
Jan 21, 2025 pm 04:26 PMMySQL優雅的自然排序
在MySQL中,對包含數字和字母的字串進行邏輯排序可能是一個挑戰。考慮以下範例資料集:
<code>最终幻想 最终幻想4 最终幻想10 最终幻想12 最终幻想12:普罗米西亚的锁链 最终幻想冒险 最终幻想起源 最终幻想战术</code>
登入後複製
如何實現自然排序,讓「最終幻想10」出現在「最終幻想4」之後,而不是出現在「最終幻想2」之前?
優雅的解決方案
無需手動將遊戲名稱解析為其組成部分(標題、編號、副標題),請嘗試此直接解決方案:
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric;
登入後複製
工作原理如下:
-
LENGTH()
函數計算每個字母數字欄位中的字元數。 -
ORDER BY
子句首先依長度升序對行進行排序。這有效地將具有相同字元數的行組合在一起。 - 在每個組內,行根據其字母數字值按升序排序。
此方法無縫處理包含數字和文字的遊戲標題,確保滿足您的要求的自然排序。它避免了手動解析的麻煩,即使處理像“Warhammer 40,000”和“James Bond 007”這樣的例外情況也同樣穩健。
以上是MySQL如何實作字母數字字串的自然排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林
兩個點博物館:所有展覽以及在哪裡可以找到它們
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
