Mysql->order by SQL 根据多个条件排序

Mysql中根据多个条件排序:(各个条件间使用逗号隔开)

首先根据class_name字符串长短升序排列,然后根据开始时间降序排列:

[php] view plain copy

  1. SELECT * FROM signup_class s ORDER BY IFNULL(length(trim(s.class_name)),0) ASC,s.date_start DESC

注释:

trim(s.class_name):去除字符串中的空格

length(trim(s.class_name):去除空格后字符串长度

ifnull(expr1,expr2):如果不是空,取expr1;如果是空,取expr2

asc:升序进行排序;

desc:降序进行排序。

时间: 2024-12-18 16:38:37

Mysql->order by SQL 根据多个条件排序的相关文章

MySQL ORDER BY:对查询结果进行排序

在 MySQL SELECT 语句中,ORDER BY 子句主要用来将结果集中的数据按照一定的顺序进行排序. 其语法格式为: ORDER BY {<列名> | <表达式> | <位置>} [ASC|DESC] 语法说明如下. 1) 列名 指定用于排序的列.可以指定多个列,列名之间用逗号分隔. 2) 表达式 指定用于排序的表达式. 3) 位置 指定用于排序的列在 SELECT 语句结果集中的位置,通常是一个正整数. 4) ASC|DESC 关键字 ASC 表示按升序分组,

MySQL管理之SQL语句实例

MySQL管理之SQL语句实例 首先,我们来导入world库,这个world库中的表是mysql ocp考试专用表,在网上有下 mysql> source/root/world_innodb.sql 表结构如下: 本文来自http://yijiu.blog.51cto.com 转载请经博主允许 ,盗帖可耻! CREATE TABLE `Country` (  `Code` char(3) NOT NULL DEFAULT '',  `Name` char(52) NOT NULL DEFAULT

《深入浅出MySQL》之SQL基础

SQL是Structure Query language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言.在众多开源数据库中,MySQL正是其中最杰出的代表,MySQL是由三个瑞典人于20世纪90年代开发的一个关系型数据库.并用了创始人之一Michael Widenius女儿的名字My命名,这就是MySQL的由来,本次博客使用的是开源数据库MySQL,版本5.7.19,下面就开始吧! SQL分类 1.数据定义语句(Data Definition Language,DDL):主要是用来定

Mysql研究之SQL语言的设计与编写完全解析

 一.SQL语句分类 数据定义语言(DDL): 用于定义和管理数据对象,包括数据库.数据表.视图.索引等.例如:CREATE.DROP.ALTER等语句. 数据操作语言(DML):[和表中的数据记录有关的语言] 用于操作数据库对象中所包含的数据.例如:INSERT.UPDATE.DELETE语句. 数据查询语言(DQL): 用于查询数据库对象中所包含的数据,能够进行单表查询.连接查询.嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客户机中显示.例如:SELECT语句(占

MySQL基本的Sql语句

一 . 常用mysql命令行命令 1 .启动MYSQL服务  net start mysql 停止MYSQL服务  net stop mysql 2 . netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的在端口是否存在 3 . 在命令行中登陆MYSQL控制台 , 即使用 MYSQL COMMEND LINE TOOL 语法格式 mysql –user=root –password=123456 db_name 或 mysql –uroot –

Mysql explain分析SQL语句之字段属性说明

在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快.如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择. explain 返回了一行记录,它包括了 select语句中用到的各个表的信息.这些表在结果中按照mysql即将执行的查询中读取的顺序列出来.mysql用一次扫描多次连接(single- sweep,multi-join)的方法来解决连接.

MySQL(2):SQL进阶

一.数据库相关理论 1.系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象 mysql: 授权库,主要存储系统用户的权限信息test: MySQL数据库系统自动创建的测试数据库 2.创建库 1 语法(help create database) C

Mysql - ORDER BY详解

0 索引 1 概述 2 索引扫描排序和文件排序简介 3 索引扫描排序执行过程分析 4 文件排序 5 补充说明 6 参考资料 1 概述 MySQL有两种方式可以实现ORDER BY: 1.通过索引扫描生成有序的结果 2.使用文件排序(filesort) 围绕着这两种排序方式,我们试着理解一下ORDER BY的执行过程以及回答一些常见的问题.(下文仅讨论InnoDB存储引擎) 2 索引扫描排序和文件排序(filesort)简介 我们知道InnoDB存储引擎以B+树作为索引的底层实现,B+树的叶子节点

mysql order by 排序的问题

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