MySQL按常规排序、自定义排序和按中文拼音字母排序的方法
MySQL常规排序、自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序。
下面给出3种比较常用的排序方式,mark一下
1.常规排序ASC DESC
ASC 正序
DESC倒叙
-- 此处不用多讲
2.自定义排序
自定义排序是根据自己想要的特定字符串(数字)顺序进行排序。
主要是使用函数 FIELD(str,str1,str2,str3,...)
MySQL的自定义排序,str与str1、str2、str3...进行比较,并按照str1,str2,str3...的顺序输出,如果遇到str为null或者不存在str1,str2,str3...中的情况的则序列为0,
eg:
SELECT * FROM TEST ORDER BY FIELD(value,'test1','test2','test3','test4') ASC/DESC
eg2:
SELECT * FROM TEST WHERE VALUE IN('test1','test2','test3','test4') ORDER BY FIELD(value,'test1','test2','test3','test4') ASC/DESC -- 保证只满足条件的进行排序
3.按中文拼音字母排序
如果表字段使用的GBK编码的话,我们可以直接order by value ,因为GBK本身就是按照拼音字母排序ABCDEFGHIGK...,当第一位相同的时候会比较第二位,以此类推。 如果表字段使用的UTF-8编码的话,通常我们都会的编码,这样我们可以使用MySQL的convert方法开转换gbk进行排序。
eg:
SELECT * FROM TEST ORDER BY CONVERT(value USING GBK) ASC/DESC
以上所述是小编给大家介绍的MySQL按常规排序、自定义排序和按中文拼音字母排序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
mysql 5.7.17 安装配置方法图文教程(CentOS7)
这篇文章主要为大家详细介绍了CentOS7下mysql 5.7.17 安装配置方法图文教程,感兴趣的小伙伴们可以参考一下2016-12-12
MySQL 中的行锁(Record Lock) 和 间隙锁(Gap Lock)详解
InnoDB中的行锁(RecordLock)和间隙锁(GapLock)是用于保证事务隔离性的两种锁机制,本文给大家介绍MySQL中的行锁(Record Lock) 和间隙锁(Gap Lock),感兴趣的朋友跟随小编一起看看吧2025-11-11
MySQL启动报错问题InnoDB:Unable to lock/ibdata1 error
这篇文章主要介绍了MySQL启动报错问题InnoDB:Unable to lock/ibdata1 error,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-07-07
一文教你在windows中如何同时安装两个不同版本的Mysql
在项目中可能会用到多个版本的Mysql数据库,本文将和大家介绍一下如何在本机已安装了一个MySQL 5.7.38的情况下,再安装一个mysql 8.0版本吧2025-03-03


最新评论