mysql按照字符串类型的数值按数值进行排序

Posted Mr_伍先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql按照字符串类型的数值按数值进行排序相关的知识,希望对你有一定的参考价值。

 

 

很明显,我写的sql是希望按照这三个字段进行升序排列,查看之后发现scene_no是varchar类型,第一次遇到这个问题我很不解,就算是字符串类型为什么要分开排序呢?这样不就等于把“10”分成“1”、“0”进行排序的吗,wtk!?这么神奇吗?
百度了一下字符串类型是如何进行排序的,看了一些答案自己尝试了一下果然OK! 因为mysql进行的排序规则是按照ASCII码进行排序的,并不会自动的识别出这些数据是数值,sql改为
order by 字段名称+0 desc/asc的形式进行排序 即可。这样mysql会将数值字符串类型的数据当作数值进行处理,但是存在效率问题,不推荐使用varchar/char类型来存储数值,这样会带来不不必要的问题,仅供大家参考!下图是修改过的排序 

 

 

 

以上是关于mysql按照字符串类型的数值按数值进行排序的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 数字字符串按照数字排序

mysql 查询时 按照某个字段计算后的值 排序?

用JS实现对每一项为数值的数组进行排序

在 MySQL 中对 varchar 字段进行数字排序

算法-排序法归类

alpha 对具有相同整数值且应按升序排列的列表进行排序[重复]