亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL字符串排序

MySQL字符串排序

瀟瀟雨雨 2019-01-28 11:22:42
題目描述數據庫有一列 name 數據如下**楚喬傳 第1集楚喬傳 第2集...楚喬傳 第10集**或者楚喬傳 02楚喬傳 02...楚喬傳 11如何按照大小習慣排序題目來源及自己的思路現在我自己做是自定義一個函數get_num_from_char提取連續的數字然后order by get_num_from_char(name)前輩們有什么更好的解決方法嗎相關代碼本來是想用一個單獨的字段比如sort來自管理這個排序但是用戶是從一個媒體庫導入的列表,不想手動處理
查看完整描述

1 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

就像你說的啊,寫一個過濾函數 get_num_from_char(name) 返回一個序號,然后另存到一個字段
例如,一個很簡單的思路就是:替換 一二三 為 123,然后留下數字 0-9 就行了

XXX第1集 轉成 1
XXXX-002集-HD 轉成 002
第一季第003集,轉成 1003
第二季第004集,轉成 2004
第三季第005集.1080P,轉成 30051080
第四季第006集-1080P,轉成 40061080
大結局 之類的,特殊處理下,轉成數字 99999999 之類的

把結果保存到一個 rank 字段,以后都用這個字段做 order by 排序
只要保證同一個系列的,名字格式類似,就行了

吐槽一句,sort 是動詞,數據庫字段,請用名詞
另外,有看到說直接字符串排序的……只能說想象是美好的……
實際上會變成 1、10、11……2、20、21……3、30、31…… 這種


查看完整回答
反對 回復 2019-01-28
  • 1 回答
  • 0 關注
  • 860 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號