一:order by的普通使用
1.介紹
當使用select語句查詢表中的資料時,結果集不按任何順序進行排序。要對結果集進行排序,請使用order by子句。
order by子句允許:
對單個列或多個列排序結果集。
按公升序或降序對不同列的結果集進行排序。
使用方式:
select column1, column2,...
from
tbl
order
by column1 [asc|desc], column2 [asc|desc],...
2.按照列進行排序
在上面的查詢中,order by
子句首先按照contactlastname
列降序對結果集進行排序,然後按照contactfirstname
列公升序對排序結果集進行排序,以生成最終結果集。
3.按照表示式進行排序
order by
子句還允許您根據表示式對結果集進行排序
4.order by 與自定義排序
order by
子句允許使用field()
函式為列中的值定義自己的自定義排序順序。
如果要按以下順序基於以下狀態的值對訂單進行排序:
in process
on hold
cancelled
resolved
disputed
shipped
可以使用field()
函式將這些值對映到數值列表,並使用數字進行排序; 請參閱以下查詢:
注意的是field函式中又乙個status欄位。
二:order by用自然語言排序
1.新建表
2.插入資料
3.查詢結果
當我們查詢選擇資料並按item_no
排序時,得到以下結果:
因為這是自然排序。
4.解決方式
為了克服這個問題,首先我們將item_no
列分成兩列:prefix
和suffix
。prefix
列儲存item_no
的數字部分,suffix
列儲存字母部分。然後根據這些列對資料進行排序。
在這個查詢中,首先使用型別轉換將item_no
資料轉換為無符號整數。 其次,使用order by
子句對數字進行數字排序,然後按字母順序排列。
5.下乙個例子
如果刪除表:drop table items
現在清空表:drop table items
新增資料:
insert into items(item_no) values('a-1'), ('a-2'), ('a-3'), ('a-4'), ('a-5'), ('a-10'), ('a-11'), ('a-20'), ('a-30');
自然排序:
6.解決方式
為了得到上面這個結果,可以使用length函式。 請注意,length函式返回字串的長度。 這個做法是首先對item_no
資料進行排序,然後按列值排序
mysql資料怎麼排序 mysql排序資料
一 order by的普通使用 1.介紹 當使用select語句查詢表中的資料時,結果集不按任何順序進行排序。要對結果集進行排序,請使用order by子句。order by子句允許 對單個列或多個列排序結果集。按公升序或降序對不同列的結果集進行排序。使用方式 select column1,colu...
MySQL排序資料之ORDER BY
目標 怎麼對資料進行排序 按單列排序 按多個列排序 指定排序方向 單列 多列 使用order by與limit組合,找出列中最高或最低值 通過select檢索出來的資料是沒有特定順序的。所以為了明確select語句檢索出來的資料,可使用order by子句。order by子句取乙個或多個列的名字,...
MySQL學習筆記 檢索資料 排序資料
單個列查詢 select user id from weibo.user 多個列查詢 select user screen name,user gender,user follow count,followers count from weibo.user 輸出起始位置為0後的5行 select u...