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