SQL语句两个字段同时order by 排序

目录

        • 1.使用两个字段同时order by 排序
        • 2.具体操作如下:
        • 3.下面分别是几个不同排序查询的差异

1.使用两个字段同时order by 排序

sql支持多个字段进行order by排序,各字段之间用逗号”,”隔开。如:

SELECT *FROM tablename order by column1,column2,column3 ;
如果不显示指出是升序还是降序,则默认为是升序
1ORDER BY column1,column2;
 表示:column1和column2都是升序

 (2)ORDER BY column1,column2 DESC;
 表示:column1 升序,column2是降序;

 (3)ORDER BY column1 DESC,column2;
 表示:column1降序,column2升序

 (4)ORDER BY column1 DESC,column2 DESC;
 表示:column1和column2都是降序。

注:想要对两个字段都同是进行升序/降序操作时候,必须得同时在每个字段
的后面加上关键字(asc/desc)。若是想要对两个关键字段按升序排序,
前面一个字段没有写关键字asc没关系,因为sql默认就是升序;但是若是
想要对两个关键字段进行降序操作,则必须得对两个关键字段都加上desc;
如: column1 desc,column2 desc;
  • 我今天就范了(4)个排序规则的错误,第一个字段没有加desc,导致最终结果不正确。后来调试了好久才找到问题的根本原因。

2.具体操作如下:

(1)select database();查看当前的数据库,show tables;查看当前数据库汇总的所有存在的表。当前 的数据库MetaData是一个空的数据库,没有表,所以创建一个新的表Emplee

SQL语句两个字段同时order by 排序_第1张图片
(2)使用如下命令创建一个新的表Emplee;各字段和类型如下:

 create table if not exists Emplee(
        id int unsigned auto_increment,
        writetime timestamp ,
        name varchar(20),
        age int, 
        primary key(id)) character set utf8;

SQL语句两个字段同时order by 排序_第2张图片
(3)向表Emplee中分别插入几条数据;
SQL语句两个字段同时order by 排序_第3张图片

3.下面分别是几个不同排序查询的差异

(1)select *from Emplee;

+----+---------------------+--------+------+
| id | writetime           | name   | age  |
+----+---------------------+--------+------+
|  1 | 2018-03-27 23:17:37 | 小明   |   22 |
|  2 | 2018-03-27 23:17:49 | 小红   |   23 |
|  3 | 2018-03-27 23:17:57 | 小张   |   33 |
|  4 | 2018-03-27 23:18:05 | 小李   |   43 |
|  5 | 2018-03-27 23:18:22 | 小黑   |   13 |
|  6 | 2018-03-27 23:18:30 | 小白   |   18 |
+----+---------------------+--------+------+
6 rows in set (0.00 sec)

(2)select *from Emplee order by id desc,writetime desc;

+----+---------------------+--------+------+
| id | writetime           | name   | age  |
+----+---------------------+--------+------+
|  6 | 2018-03-27 23:18:30 | 小白   |   18 |
|  5 | 2018-03-27 23:18:22 | 小黑   |   13 |
|  4 | 2018-03-27 23:18:05 | 小李   |   43 |
|  3 | 2018-03-27 23:17:57 | 小张   |   33 |
|  2 | 2018-03-27 23:17:49 | 小红   |   23 |
|  1 | 2018-03-27 23:17:37 | 小明   |   22 |
+----+---------------------+--------+------+
6 rows in set (0.00 sec)

(3)select *from Emplee order by id , writetime asc;

+----+---------------------+--------+------+
| id | writetime           | name   | age  |
+----+---------------------+--------+------+
|  1 | 2018-03-27 23:17:37 | 小明   |   22 |
|  2 | 2018-03-27 23:17:49 | 小红   |   23 |
|  3 | 2018-03-27 23:17:57 | 小张   |   33 |
|  4 | 2018-03-27 23:18:05 | 小李   |   43 |
|  5 | 2018-03-27 23:18:22 | 小黑   |   13 |
|  6 | 2018-03-27 23:18:30 | 小白   |   18 |
+----+---------------------+--------+------+
6 rows in set (0.00 sec)

(4)select *from Emplee order by id desc,writetime asc;

+----+---------------------+--------+------+
| id | writetime           | name   | age  |
+----+---------------------+--------+------+
|  6 | 2018-03-27 23:18:30 | 小白   |   18 |
|  5 | 2018-03-27 23:18:22 | 小黑   |   13 |
|  4 | 2018-03-27 23:18:05 | 小李   |   43 |
|  3 | 2018-03-27 23:17:57 | 小张   |   33 |
|  2 | 2018-03-27 23:17:49 | 小红   |   23 |
|  1 | 2018-03-27 23:17:37 | 小明   |   22 |
+----+---------------------+--------+------+
6 rows in set (0.00 sec)

你可能感兴趣的:(MySql)