婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL中一些鮮為人知的排序方式

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

熱門標(biāo)簽:怎樣在地圖標(biāo)注銷售區(qū)域 電話外呼系統(tǒng)改號 外呼系統(tǒng)打電話上限是多少 曲靖移動外呼系統(tǒng)公司 南昌三維地圖標(biāo)注 武漢網(wǎng)絡(luò)外呼系統(tǒng)服務(wù)商 地圖標(biāo)注費用是多少 啥是企業(yè)400電話辦理 百應(yīng)電話機器人優(yōu)勢

前言

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

一、準(zhǔn)備工作

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

二、條件排序

需求一:成績從高到低進行排序

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

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

客戶體驗最重要,為了方便二次錄入成績,提出這樣的需求純屬正常。要實現(xiàn)該排序,上面的語句是無法實現(xiàn)的,因此就需要用到條件排序,先判斷成績?yōu)榭召x個最大值,再進行排序,如 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é)生按照成績從高到低進行排序。這種情況就需要使用自定義排序了,MySQL 自帶的 FIELD 函數(shù)(返回對應(yīng)字符串的索引)可幫您實現(xiàn)。

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

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

語句二:
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)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Mysql中的排序規(guī)則utf8_unicode_ci、utf8_general_ci的區(qū)別總結(jié)
  • 讓MySQL支持中文排序的實現(xiàn)方法
  • mysql如何根據(jù)漢字首字母排序
  • Mysql row number()排序函數(shù)的用法和注意
  • Mysql select in 按id排序?qū)崿F(xiàn)方法
  • 兩種mysql對自增id重新從1排序的方法
  • 數(shù)據(jù)庫查詢排序使用隨機排序結(jié)果示例(Oracle/MySQL/MS SQL Server)
  • MySQL中按照多字段排序及問題解決
  • MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
  • Mysql利用group by分組排序

標(biāo)簽:甘南 吉林 資陽 滄州 黑河 錦州 荊州 隨州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL中一些鮮為人知的排序方式》,本文關(guān)鍵詞  MySQL,中,一些,鮮為人知,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL中一些鮮為人知的排序方式》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL中一些鮮為人知的排序方式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章

    上一篇:MySQL在線DDL工具 gh-ost的原理解析

    下一篇:Mysql性能優(yōu)化之索引下推

    主站蜘蛛池模板: 阜城县| 三门峡市| 枣庄市| 潞西市| 水城县| 龙州县| 乌海市| 宁夏| 黔东| 连州市| 色达县| 建阳市| 崇左市| 东明县| 曲沃县| 罗田县| 九江县| 广州市| 灌云县| 阿拉善盟| 桦甸市| 朔州市| 南安市| 龙口市| 彰武县| 涿州市| 通河县| 嘉定区| 金寨县| 临城县| 昌图县| 汉源县| 嘉兴市| 玛纳斯县| 田阳县| 宜良县| 屯门区| 虞城县| 九江县| 桂平市| 中山市|