MySql的幾種排序方式

2021-09-25 02:48:25 字數 2088 閱讀 9072

資料排序的情況很常見,今天介紹一下mysql的幾種排序方式,是我最近有使用到的,希望能對大家有所幫助。

這裡先建立一張普通的表,

create table `test1` (

`id` bigint(20) not null auto_increment,

`name` varchar(50) not null,

`date_time` datetime not null,

`status` int(5) not null,

primary key (`id`)

) engine=innodb auto_increment=1 default charset=utf8

再新增一些測試資料,

insert into `test1` values

(null, '測試1', '2018-03-05 11:09:00', 1),(null, '測試2', '2018-03-06 11:09:00', 1),(null, 'abc', '2018-03-07 11:09:00', 1),

(null, 'def', '2018-04-08 11:09:00', 2),(null, '李某某', '2018-04-17 11:09:00', 1),(null, '飯某某', '2018-04-20 13:09:00', 2),

(null, '趙', '2018-04-20 01:09:00', 4),(null, '倩', '2018-04-28 11:09:00', 2),(null, 'andy', '2018-04-30 11:09:00', 1),

(null, 'tony', '2018-05-08 11:09:00', 4),(null, 'tom', '2018-05-07 11:09:00', 3),(null, 'bill', '2018-05-18 11:09:00', 3),

(null, 'james', '2018-06-07 11:09:00', 4),(null, 'anthony', '2018-06-18 11:09:00', 2),(null, '蓋茨', '2018-04-21 11:09:00', 1),

(null, '部長', '2018-04-24 11:09:00', 4),(null, '李總', '2018-04-20 11:09:00', 5),(null, '張總', '2018-04-29 11:09:00', 2),

(null, '王總', '2018-04-19 11:09:00', 3),(null, '唐總', '2018-05-01 11:09:00', 2);

有了資料,開始針對這些資料,做一些排序;

1、單列排序

select * from test1 order by date_time
預設公升序,降序後面接"desc"即可。

2、多列排序 

select * from test1 order by `status`, date_time desc
首先按`status`字段排序,若`status`相等,則按data_time排序。

3、自定義排序

select * from test1 order by field(`status`, 3, 2, 4, 1, 5), date_time desc
使用"field()"函式,可指定順序。

4、其他條件排序

先按大於等於當前時間公升序,再按小於當前時間降序,支援分頁。

select * from test1 order by date_time < now(), if(date_time < now(), 0, date_time), date_time desc
暫時這麼多,希望對大家有幫助。

mysql 幾種排序 MySql的幾種排序方式

資料排序的情況很常見,今天介紹一下mysql的幾種排序方式,是我最近有使用到的,希望能對大家有所幫助。這裡先建立一張普通的表,create table test1 id bigint 20 not null auto increment,name varchar 50 not null,date t...

mysql 幾種啟動方式 mysql的幾種啟動方式

mysql的幾種啟動方式 mysql的四種啟動方式 1 mysqld 啟動mysql伺服器 mysqld defaults file etc my.cnf user root 客戶端連線 mysql defaults file etc my.cnf ormysql s tmp mysql.sock ...

mysql 幾種啟動方式 mysql的幾種啟動方式

mysql的四種啟動方式 1 mysqld 啟動mysql伺服器 mysqld defaults file etc my.cnf user root 客戶端連線 mysql defaults file etc my.cnf ormysql s tmp mysql.sock 2 mysqld safe...