最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中一些鮮為人知的排序方式

 更新時間:2021年03月18日 09:24:07   作者:踮腳敲代碼  
這篇文章主要給大家介紹了關(guān)于MySQL中一些鮮為人知的排序方式,文中介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

ORDER BY 字段名 升序/降序,相信進(jìn)來的朋友都認(rèn)識這個排序語句,但遇到一些特殊的排序,單單使用字段名就無法滿足需求了,下面給大家介紹幾個我遇到過的排序方法:

一、準(zhǔn)備工作

為了更好演示與理解,先準(zhǔn)備一張學(xué)生表,加入編號、姓名、成績?nèi)齻€字段,插入幾條數(shù)據(jù),如圖:

二、條件排序

需求一:成績從高到低進(jìn)行排序

街邊賣菜的阿姨都能敲,直接使用 ORDER BY examScore DESC 輕松完成了(如下左圖)。

需求二:成績從高到低進(jìn)行排序,并且沒錄入成績的排在最前面

客戶體驗最重要,為了方便二次錄入成績,提出這樣的需求純屬正常。要實現(xiàn)該排序,上面的語句是無法實現(xiàn)的,因此就需要用到條件排序,先判斷成績?yōu)榭召x個最大值,再進(jìn)行排序,如 ORDER BY IF(examScore IS NULL,101,examScore) DESC 也能輕松實現(xiàn)(如下右圖)。

需求 需求一 需求二
語句 ORDER BY examScore DESC ORDER BY IF(examScore IS NULL,101,examScore) DESC
效果 在這里插入圖片描述 在這里插入圖片描述

三、自定義排序

客戶如上帝,需求花里胡哨也屢見不鮮,就比如,要求張三李四排在最前面,其他學(xué)生按照成績從高到低進(jìn)行排序。這種情況就需要使用自定義排序了,MySQL 自帶的 FIELD 函數(shù)(返回對應(yīng)字符串的索引)可幫您實現(xiàn)。

語句一:
ORDER BY FIELD(studentName,‘張三',‘李四') ASC, examScore DESC;

上面語句運(yùn)行結(jié)果卻把張三李四排到最后了(如下左圖),順理成章的,要把張三李四編排到最前面就進(jìn)行降序排序。

語句二:
ORDER BY FIELD(studentName,‘李四',‘張三') DESC, examScore DESC;

結(jié)果果然正中下懷(如下右圖)。

語句 語句一 語句二
效果 在這里插入圖片描述 在這里插入圖片描述

后來發(fā)現(xiàn) FIND_IN_SET 函數(shù)也能實現(xiàn),而且使用100萬條數(shù)據(jù)測試,F(xiàn)IND_IN_SET 性能更優(yōu)。

ORDER BY FIND_IN_SET(studentName,‘李四,張三') DESC, examScore DESC;

四、漢字拼音首字母排序

有些朋友就奇怪了,漢字排序直接使用普通的 ORDER BY 字段 ASC 輕松完事啦,為什么說鮮為人知呢。
其實,用戶創(chuàng)建表字段使用 GBK 字符集時,直接使用ORDER BY 字段 ASC 可以迎刃而解,有些用戶為了防止亂碼,使用了 utf8 字符集,簡單的排序語句就無能為力了(如下左圖),因此在排序時把字段轉(zhuǎn)換為 GBK 就OK了(如下右圖)。

語句 ORDER BY studentName ASC ORDER BY CONVERT(studentName USING GBK) ASC
效果 在這里插入圖片描述 在這里插入圖片描述

總結(jié)

到此這篇關(guān)于MySQL中一些鮮為人知的排序方式的文章就介紹到這了,更多相關(guān)MySQL排序方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用MySQL的LAST_INSERT_ID來確定各分表的唯一ID值

    使用MySQL的LAST_INSERT_ID來確定各分表的唯一ID值

    MySQL數(shù)據(jù)表結(jié)構(gòu)中,一般情況下,都會定義一個具有‘AUTO_INCREMENT’擴(kuò)展屬性的‘ID’字段,以確保數(shù)據(jù)表的每一條記錄都可以用這個ID唯一確定
    2011-08-08
  • centos 6下安裝innodb_ruby

    centos 6下安裝innodb_ruby

    innodb_ruby 是使用 Ruby 編寫的 InnoDB 文件格式解析器。innodb_ruby 的目的是暴露一些其他隱藏的 InnoDB 原理。這些代碼并不適合生產(chǎn)環(huán)境使用。
    2017-01-01
  • Mysql分組排序取每組第一條的2種實現(xiàn)方式

    Mysql分組排序取每組第一條的2種實現(xiàn)方式

    開發(fā)中經(jīng)常會遇到,分組查詢最新數(shù)據(jù)的問題,下面這篇文章主要給大家介紹了關(guān)于Mysql分組排序取每組第一條的2種實現(xiàn)方式,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • MySQL?insert死鎖問題解決詳細(xì)記錄

    MySQL?insert死鎖問題解決詳細(xì)記錄

    上周遇到一個因insert而引發(fā)的死鎖問題,其成因比較令人費(fèi)解,下面這篇文章主要給大家介紹了關(guān)于MySQL?insert死鎖問題解決詳細(xì)記錄的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • CentOS系統(tǒng)下MySQL徹底卸載的幾種方法

    CentOS系統(tǒng)下MySQL徹底卸載的幾種方法

    在CentOS系統(tǒng)中,我們可以使用多種方法來卸載MySQL軟件包,這篇文章主要給大家介紹了關(guān)于CentOS系統(tǒng)下MySQL徹底卸載的幾種方法,文中通過代碼示例將每種方法都介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 淺談mysql密碼遺忘和登陸報錯的問題

    淺談mysql密碼遺忘和登陸報錯的問題

    下面小編就為大家?guī)硪黄獪\談mysql密碼遺忘和登陸報錯的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL事務(wù)的基礎(chǔ)學(xué)習(xí)以及心得分享

    MySQL事務(wù)的基礎(chǔ)學(xué)習(xí)以及心得分享

    本篇內(nèi)容是關(guān)于MySQL事務(wù)的基礎(chǔ)知識學(xué)習(xí)內(nèi)容,并把學(xué)習(xí)中網(wǎng)友的心得做了總結(jié),分享給大家,一起學(xué)習(xí)參考下吧。
    2017-12-12
  • 在MySQL中使用JOIN語句進(jìn)行連接操作的詳細(xì)教程

    在MySQL中使用JOIN語句進(jìn)行連接操作的詳細(xì)教程

    這篇文章主要介紹了在MySQL中使用JOIN語句進(jìn)行連接操作的詳細(xì)教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • MySQL安裝常見報錯處理方法總結(jié)大全

    MySQL安裝常見報錯處理方法總結(jié)大全

    MySQL數(shù)據(jù)庫在安裝或卸載的過程中,常常會出現(xiàn)一些錯誤,這是件讓我們頭疼的事,下面這篇文章主要給大家介紹了關(guān)于MySQL安裝常見報錯處理方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Mysql性能優(yōu)化案例 - 覆蓋索引分享

    Mysql性能優(yōu)化案例 - 覆蓋索引分享

    這篇文章主要介紹了Mysql性能優(yōu)化案例 - 覆蓋索引分享,需要的朋友可以參考下
    2016-03-03

最新評論

惠安县| 榆树市| 湾仔区| 丰台区| 招远市| 洪江市| 庆云县| 弥勒县| 安吉县| 平远县| 灵丘县| 射洪县| 溆浦县| 吴旗县| 灌云县| 崇左市| 区。| 舒城县| 集安市| 民乐县| 土默特左旗| 衡南县| 依兰县| 林州市| 阳朔县| 如东县| 益阳市| 海丰县| 南丹县| 象州县| 东安县| 民县| 泾阳县| 双鸭山市| 瑞昌市| 钟祥市| 青海省| 偏关县| 乌苏市| 蒙山县| 安达市|