欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序

 更新時(shí)間:2023年08月01日 17:14:01   作者:SSS4362  
這篇文章主要介紹了如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1 前提

這里采用的都是標(biāo)準(zhǔn)SQL語(yǔ)句,其他數(shù)據(jù)庫(kù)的查詢出來(lái)的結(jié)果也可以通過(guò)這些語(yǔ)句來(lái)進(jìn)行排序,

2 如何用

2.1 只有一個(gè)排序字段

2.1.1 相應(yīng)的具體語(yǔ)法

SELECT 字段1,字段2....字段n
FROM 表名
ORDER BY 需要排序的字段1 排序規(guī)則;
/*
 首先執(zhí)行FROM子句,再去執(zhí)行SELECT子句,找到滿足條件的數(shù)據(jù)行,然后再把滿足條件的數(shù)據(jù)行
 按照排序字段1的排序規(guī)則進(jìn)行排序
 其中排序規(guī)則有升序和降序,默認(rèn)不寫(xiě)就是升序
 升序需要寫(xiě)的關(guān)鍵字為ASC,降序需要寫(xiě)的關(guān)鍵字為DESC
 注意:不要和desc 表名搞混,這個(gè)是展示表的結(jié)構(gòu)
*/

2.1.2 示例sql語(yǔ)句

SELECT *
FROM student01
ORDER BY age;
/*
把查詢得到的student01的所有數(shù)據(jù)行按照age字段進(jìn)行升序排列
*/

2.1.3 示例sql語(yǔ)句運(yùn)行截圖

2.2 有多個(gè)排序字段

2.2.1 相應(yīng)的具體語(yǔ)法

SELECT 字段1,字段2....字段n
FROM 表名
ORDER BY 需要排序的字段1 排序規(guī)則,需要排序字段2 排序規(guī)則.....需要排序字段n 排序規(guī)則;
/*
 首先執(zhí)行FROM子句,再去執(zhí)行SELECT子句,找到滿足條件的數(shù)據(jù)行,然后再把滿足條件的數(shù)據(jù)行
 按照排序字段1的排序規(guī)則進(jìn)行排序,若排序字段1內(nèi)容相等,則按照排序字段2進(jìn)行相應(yīng)規(guī)則的排序
 后面的字段也是依次類推
 其中排序規(guī)則有升序和降序,默認(rèn)不寫(xiě)就是升序
 升序需要寫(xiě)的關(guān)鍵字為ASC,降序需要寫(xiě)的關(guān)鍵字為DESC
 注意:不要和desc 表名搞混,這個(gè)是展示表的結(jié)構(gòu)
*/

2.2.2 示例sql語(yǔ)句

SELECT *
FROM student01
ORDER BY age,name DESC;
/*
對(duì)SELECT子句中查詢到的數(shù)據(jù)行先進(jìn)行age字段的升序排序,當(dāng)age字段年齡相同時(shí),則按照name字段進(jìn)行降序排列
*/

2.2.3 示例sql語(yǔ)句運(yùn)行截圖

3 補(bǔ)充說(shuō)明

3.1 ORDER BY子句里面也可以寫(xiě)別名

3.1.1 基本語(yǔ)法

SELECT 字段1 AS '別名1',字段2 AS '別名2'...字段n AS '別名n'
FROM 表名
ORDER BY '別名1' 排序規(guī)則,'別名2' 排序規(guī)則....'別名n' 排序規(guī)則n;

3.1.2 示例sql語(yǔ)句

SELECT name AS '姓名',age AS '年齡'
FROM student01
ORDER BY 年齡 ASC,姓名 DESC;
/*
如果別名是帶單引號(hào)的中文的話,在ORDER BY子句中使用別名不用加上單引號(hào)
*/

3.1.3 示例sql語(yǔ)句運(yùn)行截圖

3.2 ORDER BY子句的執(zhí)行順序

ORDER BY子句的執(zhí)行順序永遠(yuǎn)在最后,再具體一點(diǎn)來(lái)說(shuō)就是,ORDER BY子句的執(zhí)行順序永遠(yuǎn)在SELECT 子句的執(zhí)行之后

理由:

因?yàn)槟愕冒押Y選過(guò)、已經(jīng)分組完成后的數(shù)據(jù)行拿到后才能進(jìn)行排序,不然你先排序,然后再去分組,然后再還是要去排序,那這樣之前的排序操作就沒(méi)有任何意義了

3.3 ORDER BY子句雖然可以使用列編號(hào)進(jìn)行排序(從1開(kāi)始)

但是不建議這么用,因?yàn)殚喿x體驗(yàn)感極差

3.3.1 基本語(yǔ)法

SELECT 字段1,字段2 ...字段n
FROM 表名
ORDER BY 列編號(hào) 排序規(guī)則,列編號(hào) 排序規(guī)則....列編號(hào) 排序規(guī)則n;
/*
列編號(hào)從1開(kāi)始,依次遞增,其中1代表數(shù)據(jù)庫(kù)的第一列即為數(shù)據(jù)表的第一個(gè)字段所在的列
*/

3.3.2 示例sql語(yǔ)句

SELECT name,age
FROM student01
ORDER BY 2,1 DESC;
/*
列編號(hào)這種寫(xiě)法建議不要寫(xiě),因?yàn)殚喿x體驗(yàn)感極差,然后知道有這個(gè)用法
就行,看見(jiàn)別人寫(xiě)這種寫(xiě)法的話,只要自己能看懂就行
*/

3.3.3 示例sql語(yǔ)句運(yùn)行截圖

3.4 如果排序的字段里面有null值的話

會(huì)把null值放在最前面(升序)或者最后面(降序)

3.4.1 示例sql代碼

SELECT *
FROM student01
ORDER BY age DESC;

3.4.2 示例sql代碼運(yùn)行截圖

3.5 ORDER BY可以使用SELECT 語(yǔ)句中的所有字段

也可以使用聚合函數(shù)

3.5.1 示例sql代碼

SELECT name
FROM student01
ORDER BY age ASC;
/*
ORDER BY中參與排序的字段可以是student01表中的任意一個(gè)字段
*/

3.5.2 示例sql代碼運(yùn)行截圖

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論