mysql order by 排序的问题

参考博客http://blog.csdn.net/hollboy/article/details/13296601

mysql order by 的排序在今天时候遇到了问题

情景是:将排序的字段设置成varchar类型了,然后排序时候并没有按从大到小的顺序

按照图中的顺序应该是正序,9排在最上边,但是实际上是666排在最上边

解决办法之一

实际情况是先按最左边的开始排序然后在一位一位比下去,这里在写sql时候的解决办法可以是加0,或者前面加上--也可以哦

解决办法之二

将字段类型换成int类型看下

排序立马正确了,并且位置也靠右边了,可能也是按右边数字开始排序了,时间类型不再累述。

时间: 2024-08-05 22:27:07

mysql order by 排序的问题的相关文章

MySQL order by 排序结果不正确

新建一张测试表: CREATE TABLE `tb1` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `a` decimal(19,2) NOT NULL, `acid` bigint(20) NOT NULL, `prid` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `idx_prid` (`prid`), KEY `idx_acid` (`acid`) ) ENGINE=InnoDB AUTO_INCRE

MYSQL order by 排序的一个小问题探究

小问题发现: select * from `sql` where id=1 order by (select 1 union select 2) 正常返回结果 mysql> select * from `sql` where id=1 order by (select 1 union select 2); +----+------+ | id | new | +----+------+ | 1 | test | +----+------+ 1 row in set mysql> select

MYSQL order by排序与索引关系总结

MySQL InnoDB B-Tree索引使用Tips 这里主要讨论一下InnoDB B-Tree索引的使用,不提设计,只管使用.B-Tree索引主要作用于WHERE和ORDER BY子句.这里讨论的均在MySQL-Server-5.1.42测试 CREATE TABLE `friends` ( `ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `uid`bigint(20) UNSIGNED NOT NULL DEFAULT '0', `fuid`

mysql order by排序查询速度问题

SELECT * FROM `assets_message` LEFT JOIN purchase_message ON assets_message.purchase_id = purchase_message.purchase_id WHERE `purchase_type` = 'oassets'AND purchase_message.assets_type = '002' ORDER BY purchase_message.purchase_id,assets_id SELECT *

MySQL如何利用索引优化ORDER BY排序语句

MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通过索引优化来实现MySQL的ORDER BY语句优化: 1.ORDER BY的索引优化.如果一个SQL语句形如:SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort];在[sort]这个栏位上建立索引就可以实现利用索引进行order by

MySQL中order by排序时,数据存在null咋办

order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路. 问题: 网页要实现table的行鼠标拖拽排序,我用AngularJs集成了一个TableDnD开源插件,可以实现,然后在数据库表中增加一个排序字段indexId,但是原来的大量数据是没有排序过的,所以该字段为null. 这样order by时,为null的数据就会排在最前边. 写个测试表模拟一下,如下效果: 解决办法: 最优办法:利用MySQL中的一

mysql order by多字段排序

mysql order by多字段排序,在同一表中必须按字段顺序,否则以最后一字段的排序为准,其他无效. 如:ORDER BY `user`.`state` DESC , `user`.`order_by` ASC state字段在order_by字段前面

Mysql Order By 字符串排序,mysql 字符串order by

Mysql Order By 字符串排序,mysql 字符串order by ============================== ?Copyright 蕃薯耀 2017年9月30日 http://fanshuyao.iteye.com/ 一.问题描述: Mysql排序时如果用的的字段为字符串型的,排序规则是这样的:如1,10,2,20,3,4,5,这种排序是按照字符从第一个字符开始比较出来的,但不是我想要的,我想要的是:1,2,3,4,5--,10,20这种. 二.解决方案 排序时,把

mysql ORDER BY,GROUP BY 和DISTINCT原理

前言 除了常规的Join语句之外,还有一类Query语句也是使用比较频繁的,那就是ORDERBY,GROUP BY以及DISTINCT这三类查询.考虑到这三类查询都涉及到数据的排序等操作,所以我将他们放在了一起,下面就针对这三类Query语句做基本的分析. ORDER BY 的实现与优化 在MySQL中,ORDERBY的实现有如下两种类型: 一种是通过有序索引而直接取得有序的数据,这样不用进行任何排序操作即可得到满足客户端要求的有序数据返回给客户端: 另外一种则需要通过MySQL的排序算法将存储