zoukankan      html  css  js  c++  java
  • MySQL中对varchar类型排序问题

      在数据库表中有一个对varchar类型的数值进行desc排序,很简单的要求吧。可是奇怪的现象出现了表中的数据不会根据从高到底进行排序了瞬间有点泪奔的感觉呀还好经过高手指点啊。所以想和大家分享一下希望下一个mysql初学者以后不要像我一样了啊还是废话少说,看代码吧

      如:有一张T_TESTDEMO表,其有两个DEMOID,DEMONAME字段,其中DEMOID是int类型,DEMONAME是VARCHAR类型但是存放的是认为是数值类型的数据,里面的数据如下:

      1,"222222"

      2,"33333333"

      3,"111111"

      4,"2222"

      5,"99999"

      6,"8888"

      7,"11111"

      8,"777"

      现在有个要求是根据DEMONAME里面的数据从大到小排序,一看很简单的嘛,于是很得意的写下以下SQL:托福答案

      SELECT * FROM T_TESTDEMO ORDER BY DEMONAME DESC

      可是排序的结果是:

      5,"99999"

      6,"8888"

      8,"777"

      2,"33333333"

      1,"222222"

      4,"2222"

      3,"111111"

      7,"11111"

      完全不是想要的那种根据大小排序的,瞬间有点石化啊。所以下面重点来了:

      假如使用下面的sql,会是怎样呢?

      SELECT * FROM T_TESTDEMO ORDER BY (DEMONAME + 0) DESC ;

      排序结果为:

      2,"33333333"

      1,"222222"

      3,"111111"

      5,"99999"

      7,"11111"

      6,"8888"

      4,"2222"

      8,"777"

      呀。好像是想要的那种数据比较大小的了呀可是为什么+0就好了呢?

      原来,+0后就转换INT类型排序了。这样就可以按照大小排序了

     

  • 相关阅读:
    Jmeter4.0压测实战
    tomcat只部署一个index.html 文件
    redis 查看当前连接数
    公众号入口-H5测试要点
    windows 下启动redis && Python 操作 redis
    Jmeter4.0之beanshell引用外部jar
    算法练习之存在重复元素
    python 递归查找jpg文件并打印
    hadoop单节点安装
    windows 下获取文件夹下的文件名称
  • 原文地址:https://www.cnblogs.com/haosola/p/3382368.html
Copyright © 2011-2022 走看看