2019-12-11对varchar类型排序问题的解决

在mysql默认order by 只对数字与日期类型可以排序,但对于varchar字符型类型排序好像没有用了,下面我来给各位同学介绍varchar类型排序问题如何解决。

现象描述:  

  

select * from resultgroup where upUser = 'kkk' order by patientId desc

  

  为什么会出现这种现象呢?就是因为 patientIdvarchar类型的 而order by 排序只针对数字 跟日期排序的。所以会出现上述现象。

解决办法:

  1.把varchar类型字段加上0变成int类型就ok。

  

select * from resultgroup where upUser = 'kkk' order by patientId+ desc

  

 2.用mysql自带的方法  把varchar强转。CAST/CONVERT

  mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?

  CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
  这个类型 可以是以下值其中的 一个:
  BINARY[(N)]
  CHAR[(N)]
  DATE
  DATETIME
  DECIMAL
  SIGNED [INTEGER]
  TIME
  UNSIGNED [INTEGER]

所以我们可以用CAST解决问题:

select * from resultgroup where upUser = 'kkk' order by cast(patientId as signed ) desc

也可以使用CONVERT来搞定此问题:

select * from resultgroup where upUser = 'kkk' order by convert(patientId , signed ) desc

3.如果不是电话而是汉字怎么办,汉字排序我们只要进行简单转换即可排序了

在mysql中使用order by对存储了中文信息的字段,默认出来的结果并不是按汉字拼音的顺序来排序,要想按汉字的拼音来排序,需要把数据库的字符集设置为UTF8,然后在order by 时候强制把该字段信息转换成GBK,这样出来的结果就是按拼音顺序排序的。例如:

SELECT * FROM table_name ORDER BY CONVERT(column_name USING gbk);

结论是:查询的时候,通过convert函数,把查询出来的数据使用的字符集gb2312编码就可以了,然后使用convert之后的中文排序。但是如果真的去把表中字段的字符集改成gb2312,又会涉及到很多编码的问题,页面传值啊,从数据库中存取啊,很麻烦。只要在查询的时候,指定一下字符集,并不是真的把物理字段改成gb2312,很简单。

 到这里对varchar类型排序问题就解决了。。。

最新文章

  1. linux基础命令
  2. 关于MVC中Start.cs文件的作用
  3. 20151009 C# 第一篇 程序编写规范
  4. sprint5.0
  5. 《FLASH CC 2015 CANVAS 中文教程》——3、this关键字 入门
  6. 大数据时代下的用户洞察:用户画像建立(ppt版)
  7. lua package path 设置方法
  8. nginx+uwsgi+flask搭建python-web应用程序
  9. 使用U盘安装ubuntu 12.04(使用大白菜u盘启动工具)
  10. Linux学习之要点必备
  11. 无依赖简单易用的Dynamics 365公共视图克隆工具
  12. php预定义常量
  13. 解决Myeclipse通过svn导入项目后,项目直接报错问题
  14. go xorm增删改查
  15. Oracle PLSQL 客户端 连接Oracle12.2 出现权限问题的解决办法以及绿色版Oracle客户端的使用.
  16. listview加载数据
  17. lwip调试记录
  18. JavaEE笔记(九)
  19. AppendMenu函数添加菜单
  20. Substrings(SPOJ8222) (sam(后缀自动机))

热门文章

  1. JavaScript算法实现之汉诺塔(Hanoi)
  2. 01 JavaScript变量的声明、变量的使用、变量的命名规范和规则
  3. 关于for循环中使用setTimeout
  4. 阿里P7整理“硬核”面试文档:Java基础+数据库+算法+框架技术等
  5. Mac下PHP连接MySQL报错"No such file or directory"的解决办法
  6. CSS 导入-选择器-权重
  7. 虚拟机中linux系统常用命令解释及vim3种命令模式详解
  8. 物缘科技主导IEEE可信物联网数据管理工作组启动会召开
  9. Python小数据保存,有多少中分类?不妨看看他们的类比与推荐方案...
  10. 学习ThinkPHP的第20天--MySQL事务操作、查询事件、一对一关联