創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計(jì),賀州網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:賀州等地區(qū)。賀州做網(wǎng)站價(jià)格咨詢:18982081108這篇文章將為大家詳細(xì)講解有關(guān)mysql排序的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
使用SELECT抽取數(shù)據(jù)時(shí),數(shù)據(jù)的顯示是無(wú)序的,想要得到有序的數(shù)據(jù),那么我們就需要使用ORDER BY子句進(jìn)行排序。
ORDED BY 子句語(yǔ)法:
SELECT <列1>,<列2>,<列3>,......
FROM <表名>
ORDER BY <排序基準(zhǔn)1>,<排序基準(zhǔn)2>,.....
ORDED BY 子句(商品的銷售單價(jià)升序排列)
其中desc表示降序,asc表示升序排列。
示例:
這里先創(chuàng)建一張普通的表
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
再添加一些測(cè)試數(shù)據(jù)
INSERT INTO `test1` VALUES (NULL, '測(cè)試1', '2018-03-05 11:09:00', 1),(NULL, '測(cè)試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, '部長(zhǎng)', '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);
有了數(shù)據(jù),開始針對(duì)這些數(shù)據(jù),做一些排序:
1、單列排序
SELECT * FROM test1 ORDER BY date_time
默認(rèn)升序,降序后面接"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()"函數(shù),可指定順序。
4、其他條件排序
先按大于等于當(dāng)前時(shí)間升序,再按小于當(dāng)前時(shí)間降序,支持分頁(yè)。
SELECT * FROM test1 ORDER BY date_time < NOW(), IF(date_time < NOW(), 0, date_time), date_time DESC
關(guān)于mysql排序的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。