加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql排序问题

发布时间:2023-02-17 13:55:30 所属栏目:MySql教程 来源:
导读:  最近开发一个功能,需要用到mysql的排序,在进行测试的时候,发现异常,没有按照预期的顺序来排序,查询后发现,原来是和字段类型有关系。数据库中排序的字段类型是varcharMySQL 排序,而我期望的排序是int类型的
  最近开发一个功能,需要用到mysql的排序,在进行测试的时候,发现异常,没有按照预期的顺序来排序,查询后发现,原来是和字段类型有关系。数据库中排序的字段类型是varcharMySQL 排序,而我期望的排序是int类型的顺序。
 
  建表语句如下:
 
  CREATE TABLE `company`.`Untitled`  (
    `name` varchar(255) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL DEFAULT NULL,
    `order` varchar(255) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL DEFAULT NULL,
    `file1` varchar(255) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL DEFAULT NULL
  ) ENGINE = InnoDB CHARACTER SET = gb2312 COLLATE = gb2312_chinese_ci ROW_FORMAT = Compact;
  查询语句:
 
  SELECT * from test t  order by t.order  

  修改方法就是排序的时候添加一个+0,sql如下:
 
  SELECT * from test t  order by (t.order+0)  
  得到了正确的结果
 
  特此记录。
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!