search
HomeDatabaseMysql TutorialMySQL's little-known sorting method

<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/202102/09/2021020910000799574.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="MySQL's little-known sorting method" >

##Free learning recommendation: mysql video tutorial

ORDER BY field name ascending/descending order, I believe friends who come in know this sorting statement, but when encountering some special sorting, using field names alone cannot meet the needs. Here is what you need Introducing several sorting methods I have encountered:

1. Preparation work

For better demonstration and understanding, first prepare a student table, add numbers, Insert several pieces of data into the three fields of name and grades, as shown in the figure:


MySQLs little-known sorting method

2. Conditional sorting

Requirement 1: Grades from high to Sorting by low
can be done by the aunties selling vegetables on the street. You can easily use

ORDER BY examScore DESC (as shown on the left below).

Requirement 2: The scores are sorted from high to low, and those who have not entered the scores are ranked first
Customer experience is the most important. In order to facilitate the second entry of scores, this requirement is purely normal. To achieve this sorting, the above statement cannot be implemented, so you need to use conditional sorting. First determine if the score is empty and assign a maximum value, and then sort, such as

ORDER BY IF(examScore IS NULL,101,examScore ) DESC can also be easily implemented (as shown on the right below).

RequirementsRequirements oneRequirements two StatementORDER BY examScore DESCORDER BY IF(examScore IS NULL,101,examScore) DESCEffect



MySQLs little-known sorting method MySQLs little-known sorting method

3. Custom sorting

Customers are like God, and it is not uncommon for them to have fancy demands. For example, students are required to be ranked first, and other students are required to be ranked first according to their grades. Sort from high to low. In this case, you need to use custom sorting. MySQL's own FIELD function (returns the index of the corresponding string) can help you achieve this.

Statement 1:

ORDER BY FIELD(studentName,'Zhang San','Li Si') ASC, examScore DESC;

The above statement results are We have arranged Zhang San and Li Si at the end (as shown on the left below). It is logical that we should arrange Zhang San and Li Si at the front and sort them in descending order.

Statement 2:

ORDER BY FIELD(studentName,'李思','张三') DESC, examScore DESC;

The result is exactly what you want (as follows) right picture).

StatementStatement oneStatement two Effect
MySQLs little-known sorting method MySQLs little-known sorting method
Later I found that the FIND_IN_SET function can also be implemented, and tested using 1 million pieces of data. FIND_IN_SET performs better.

ORDER BY FIND_IN_SET(studentName,'李思,张三') DESC, examScore DESC;

##4. Sort by the first letter of Chinese pinyin

Some friends are surprised that sorting Chinese characters directly uses the ordinary

ORDER BY field ASC

and it is done easily. Why is it so little known? In fact, when users create table fields using the GBK character set, they can directly use the ORDER BY field ASC
to solve the problem. Some users use the utf8 character set to prevent garbled characters, and simple sorting statements are useless ( As shown in the left picture below), it is OK to convert the field to GBK when sorting (as shown in the right picture below).

StatementEffect##5. Guess you Like
ORDER BY studentName ASC ORDER BY CONVERT(studentName USING GBK) ASC
MySQLs little-known sorting method MySQLs little-known sorting method

MySQL remote connection error 1130 solution

    MySQL configuration master-slave synchronization backup
  • Use filters to prevent SQL injection
Related free learning recommendations:

mysql database(Video)

The above is the detailed content of MySQL's little-known sorting method. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:CSDN. If there is any infringement, please contact admin@php.cn delete
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),