中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么按照指定的字段排序

發布時間:2021-08-12 15:12:26 來源:億速云 閱讀:1263 作者:Leah 欄目:MySQL數據庫

本篇文章為大家展示了MySQL中怎么按照指定的字段排序,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

測試數據

drop table a;

create table a (x varchar(10),y varchar(10));

insert into a values('yujx','all'),('oracle','pc'),('mysql','mobile');

#表a的測試數據如下
MySQL>select * from a;
+--------+--------+
| x      | y      |
+--------+--------+
| yujx   | all    |
| oracle | pc     |
| mysql  | mobile |
+--------+--------+
3 rows in set (0.00 sec)

#默認的按y排序(升序或降序)結果
MySQL>select * from a order by y;
+--------+--------+
| x      | y      |
+--------+--------+
| yujx   | all    |
| mysql  | mobile |
| oracle | pc     |
+--------+--------+
3 rows in set (0.00 sec)


MySQL>select * from a order by y desc;
+--------+--------+
| x      | y      |
+--------+--------+
| oracle | pc     |
| mysql  | mobile |
| yujx   | all    |
+--------+--------+
3 rows in set (0.00 sec)

 

現在想按mobile->all->pc的順序排序,可使用如下方法

方法一:使用 FIND_IN_SET(str,strlist) 函數
MySQL>select * from a order by find_in_set(y,'mobile,all,pc');
+--------+--------+
| x      | y      |
+--------+--------+
| mysql  | mobile |
| yujx   | all    |
| oracle | pc     |
+--------+--------+
3 rows in set (0.00 sec) 

方法二:使用FIELD(str,str1,str2,str3,...)函數
#FIELD函數主要用途會返回值在后面列表中的位置,如下
MySQL>select x,y,field(y,'mobile','pc','all') sort_Nu from a order by field(y,'mobile','pc','all');   
+--------+--------+---------+
| x      | y      | sort_Nu |
+--------+--------+---------+
| mysql  | mobile |       1 |
| oracle | pc     |       2 |
| yujx   | all    |       3 |
+--------+--------+---------+
3 rows in set (0.00 sec)

方法三:使用 SUBSTRING_INDEX(str,delim,count) 函數
MySQL>select * from a order by substring_index('mobile,all,pc',y,1);
+--------+--------+
| x      | y      |
+--------+--------+
| mysql  | mobile |
| yujx   | all    |
| oracle | pc     |
+--------+--------+
3 rows in set (0.00 sec)
#看下面 substring_index('mobile,all,pc',y,1) 取值,可知按b列的值排序 y的順序固然就是 mobile,all,pc
MySQL>select y,substring_index('mobile,all,pc',y,1) b  from a;
+--------+-------------+
| y      | b           |
+--------+-------------+
| all    | mobile,     |
| pc     | mobile,all, |
| mobile |             |
+--------+-------------+
3 rows in set (0.00 sec)

方法四:使用case when

MySQL>select x,y,case when y='mobile' then 1 when y='all' then 2 when y='pc' then 3 end sort_nu from a order by  case when y='mobile' then 1 when y='all' then 2 when y='pc' then 3 end;

+--------+--------+---------+
| x      | y      | sort_nu |
+--------+--------+---------+
| mysql  | mobile |       1 |
| yujx   | all    |       2 |
| oracle | pc     |       3 |
+--------+--------+---------+
3 rows in set (0.00 sec)

上述內容就是MySQL中怎么按照指定的字段排序,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和田市| 平定县| 自贡市| 那坡县| 广昌县| 博客| 泰来县| 北流市| 南汇区| 广丰县| 湖北省| 石屏县| 房产| 庄河市| 宁城县| 黄骅市| 双鸭山市| 将乐县| 赣州市| 肃北| 布尔津县| 河间市| 芒康县| 田东县| 平遥县| 子洲县| 卢氏县| 花莲市| 衡阳县| 沙湾县| 许昌市| 马边| 龙海市| 美姑县| 买车| 旅游| 防城港市| 志丹县| 徐水县| 徐汇区| 平潭县|