91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

南乐县| 延安市| 康保县| 霍州市| 白城市| 微山县| 邵东县| 分宜县| 长治市| 梁平县| 双鸭山市| 吴忠市| 措勤县| 尚义县| 雅安市| 娱乐| 天长市| 永昌县| 莱州市| 四川省| 阿瓦提县| 阳原县| 阜康市| 辽宁省| 隆回县| 安阳县| 固始县| 无锡市| 德安县| 故城县| 崇文区| 江油市| 灌云县| 阜平县| 吐鲁番市| 左贡县| 原阳县| 天镇县| 策勒县| 三门峡市| 房产|