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

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

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

前言

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

一、準(zhǔn)備工作

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

二、條件排序

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

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

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

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

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

三、自定義排序

客戶如上帝,需求花里胡哨也屢見不鮮,就比如,要求張三李四排在最前面,其他學(xué)生按照成績(jī)從高到低進(jìn)行排序。這種情況就需要使用自定義排序了,MySQL 自帶的 FIELD 函數(shù)(返回對(duì)應(yīng)字符串的索引)可幫您實(shí)現(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ù)也能實(shí)現(xiàn),而且使用100萬條數(shù)據(jù)測(cè)試,F(xiàn)IND_IN_SET 性能更優(yōu)。

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

四、漢字拼音首字母排序

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

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

總結(jié)

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

相關(guān)文章

  • 從0到1學(xué)會(huì)MySQL單表查詢

    從0到1學(xué)會(huì)MySQL單表查詢

    這篇文章主要給大家介紹了關(guān)于如何從0到1學(xué)會(huì)MySQL單表查詢的相關(guān)資料,單表查詢是指從一張表數(shù)據(jù)中查詢所需的數(shù)據(jù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • MySQL中UNION語句用法詳解與示例

    MySQL中UNION語句用法詳解與示例

    這篇文章主要給大家介紹了關(guān)于MySQL中UNION語句用法的相關(guān)資料,實(shí)際業(yè)務(wù)中有時(shí)候需要把滿足多種獨(dú)立條件的結(jié)果集整合到一起,就可以使用UNOIN聯(lián)合查詢,需要的朋友可以參考下
    2023-08-08
  • 阿里云服務(wù)器手動(dòng)實(shí)現(xiàn)mysql雙機(jī)熱備的兩種方式

    阿里云服務(wù)器手動(dòng)實(shí)現(xiàn)mysql雙機(jī)熱備的兩種方式

    阿里云服務(wù)器由于不支持keepalive虛擬ip,導(dǎo)致無法通過keepalive來實(shí)現(xiàn)mysql的雙機(jī)熱備。我們這里要實(shí)現(xiàn)阿里云的雙機(jī)熱備有兩種方式。感興趣的朋友跟隨小編一起看看吧
    2019-10-10
  • mysql 一次向表中插入多條數(shù)據(jù)實(shí)例講解

    mysql 一次向表中插入多條數(shù)據(jù)實(shí)例講解

    這篇文章主要介紹了mysql 一次向表中插入多條數(shù)據(jù)實(shí)例講解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • MySQL啟動(dòng)報(bào)錯(cuò):Starting MySQL.. ERROR! The server quit without updating PID file的問題分析和解決

    MySQL啟動(dòng)報(bào)錯(cuò):Starting MySQL.. ERROR! The se

    這篇文章給大家介紹了MySQL啟動(dòng)報(bào)錯(cuò):Starting MySQL.. ERROR! The server quit without updating PID file的問題分析和解決辦法,文中給出了詳細(xì)的原因分析,需要的朋友可以參考下
    2023-12-12
  • Myeclipse 自動(dòng)生成可持久化類的映射文件的方法

    Myeclipse 自動(dòng)生成可持久化類的映射文件的方法

    這篇文章主要介紹了Myeclipse 自動(dòng)生成可持久化類的映射文件的方法的相關(guān)資料,這里提供了詳細(xì)的實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2016-11-11
  • MySQL中INSERT INTO的具體使用

    MySQL中INSERT INTO的具體使用

    INSERT INTO 是 MySQL 數(shù)據(jù)庫(kù)中非常重要的一種 SQL 命令,用于將新行插入到表中,本文主要介紹了MySQL中INSERT INTO的具體使用,感興趣的可以了解一下
    2024-03-03
  • MySQL導(dǎo)入.CSV數(shù)據(jù)中文亂碼的解決方式

    MySQL導(dǎo)入.CSV數(shù)據(jù)中文亂碼的解決方式

    當(dāng)將xls或xlsx文件轉(zhuǎn)換為CSV并導(dǎo)入數(shù)據(jù)庫(kù)時(shí),可能出現(xiàn)亂碼,原因是編碼格式不是UTF-8,解決方法是使用Notepad或記事本打開CSV文件,所以本文給大家介紹了MySQL導(dǎo)入.CSV數(shù)據(jù)中文亂碼的解決方式,需要的朋友可以參考下
    2024-08-08
  • MySQL深分頁,limit 100000,10優(yōu)化方式

    MySQL深分頁,limit 100000,10優(yōu)化方式

    MySQL中深分頁查詢因需掃描大量數(shù)據(jù)行導(dǎo)致效率低下,優(yōu)化方法包括子查詢優(yōu)化、延遲關(guān)聯(lián)、標(biāo)簽記錄法和使用between...and...等,通過減少回表次數(shù)和范圍掃描提升查詢性能,覆蓋索引幫助減少搜索次數(shù),提升性能
    2024-10-10
  • mysql之連接超時(shí)wait_timeout問題及解決方案

    mysql之連接超時(shí)wait_timeout問題及解決方案

    這篇文章主要介紹了mysql之連接超時(shí)wait_timeout問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評(píng)論