mysql order by多字段排序

mysql order by多字段排序,在同一表中必须按字段顺序,否则以最后一字段的排序为准,其他无效。

如:ORDER BY `user`.`state` DESC , `user`.`order_by` ASC

state字段在order_by字段前面

时间: 2024-11-05 15:59:57

mysql order by多字段排序的相关文章

关于MySQL一些问题按字段排序

之前从数据库取值然后按照某个字段进行排序,返回的却是乱序的,这是什么原因呢? 比如,数据表a有一个字段APPversion是varchar型的(7.8.9.10),然后我们在工程中定义APPVersion为String型的,我们按照这个APPversion来反向排序,如果直接使用 select * from a order by APPversion desc; 这样查询出来的是9.8.7.10. 主要原始还是数据库定义的是varchar型的,是按照字符串来排序的,所以这里的10并不是10,而是

mysql分组统计按照字段排序方法(分组之后保留最新时间、最大id...)

sql示例如下: select success_time,query_time,order_no from pro_return_plan t where t.success_time in ( SELECT max(success_time) FROM pro_return_plan WHERE 1=1 AND bill_status='2' AND success_time IS TRUE AND order_no IN('20190416105437690','20190510193141

mysql order by 排序的问题

参考博客http://blog.csdn.net/hollboy/article/details/13296601 mysql order by 的排序在今天时候遇到了问题 情景是:将排序的字段设置成varchar类型了,然后排序时候并没有按从大到小的顺序 按照图中的顺序应该是正序,9排在最上边,但是实际上是666排在最上边 解决办法之一 实际情况是先按最左边的开始排序然后在一位一位比下去,这里在写sql时候的解决办法可以是加0,或者前面加上--也可以哦 解决办法之二 将字段类型换成int类型看

mysql 中文字段排序

方法1)select * from mytable order by CONVERT(chineseColumnName USING gbk);  (备注:chineseColumnName 位排序字段) 方法2)对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary". 原因: 在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的. 这

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排序与索引关系总结

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 多个字段

下图是只加了一个排序的结果: 可以看到,单一字段是没问题的.如果加入c2呢?下图是c2 可以发现,这里的orderby是先按c1增序,然后对于按c1排好序以后的相同的元素,又根据c2做了降序排序.下面 是c1,c2都增序,结果符合. 总结就是,orderby多个字段时,用逗号分隔每一个字段,如果字段不指明排序方式,默认是增序.排序的方法是先按第一个字段排序,如果有相同的再按后续的字段依次排序.

mysql ORDER BY,GROUP BY 和DISTINCT原理

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

Mysql order by与limit混用陷阱

在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N.但是这种写法却隐藏着较深的使用陷阱.在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题. 比如现在有一张user表,表结构及数据如下: 表结构 表数据 现在想根据创建时间升序查询user表,并且分页查询,每页2条,那很容易写出sql为:select * from user orde