mysql按照字符串類型的數值按數值進行排序


 

 

很明顯,我寫的sql是希望按照這三個字段進行升序排列,查看之后發現scene_no是varchar類型,第一次遇到這個問題我很不解,就算是字符串類型為什么要分開排序呢?這樣不就等於把“10”分成“1”、“0”進行排序的嗎,wtk!?這么神奇嗎?
百度了一下字符串類型是如何進行排序的,看了一些答案自己嘗試了一下果然OK! 因為mysql進行的排序規則是按照ASCII碼進行排序的,並不會自動的識別出這些數據是數值,sql改為
order by 字段名稱+0 desc/asc的形式進行排序 即可。這樣mysql會將數值字符串類型的數據當作數值進行處理,但是存在效率問題,不推薦使用varchar/char類型來存儲數值,這樣會帶來不不必要的問題,僅供大家參考!下圖是修改過的排序 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM