資料排序的情況很常見,今天介紹一下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...