mysql排序資料

2021-09-07 15:43:19 字數 3545 閱讀 3081

一: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列分成兩列:prefixsuffixprefix列儲存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...