Mysql 中文排序规则说明

 更新时间:2021年02月04日 08:36:09   投稿:jingxian  
这篇文章主要介绍了Mysql 中文排序规则说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

使用MySQL过程中,我们经常会对一个字段进行排序查询,我们一般都是想要按照中文拼音首字母进行依次排序,但mysql中进行中文排序的时候,对汉字的排序结果往往都是错误的。

这种情况在MySQL的很多版本中都存在。

如果这个问题不解决,那么MySQL将无法实际处理中文。

出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。

查了资料有两种解决方法:

1.对于包含中文的字段加上”binary”属性,使之作为二进制比较,例如将”name varchar(10)”改成”name varchar(10)binary”。

2. 如果不想对表结构进行修改或者重新编译MySQL,也可以在查询语句的 order by 部分使用 CONVERT 函数。

比如 name字段为中文,需要按其排序,则可以写select * from mytable order by CONVERT(name USING gbk);

补充:mysql数据库默认排序问题

1、mysql官方回答:

SELECT * FROM tbl -- this will do a "table scan". If the table has never had any DELETEs/REPLACEs/UPDATEs, the records will happen to be in the insertion order, hence what you observed.

大致意思为,一个myisam引擎表在没有任何的删除,修改操作下,执行 select 不带order by,那么会按照插入顺序进行排序。

If you had done the same statement with an InnoDB table, they would have been delivered in PRIMARY KEY order, not INSERT order. Again, this is an artifact of the underlying implementation, not something to depend on.

对于innodb引擎表来说,在相同的情况下,select 不带order by,会根据主键来排序,从小到大

2、查看数据库引擎命令:

(1)查看某个表使用的引擎

show create table ;

(2)查看mysql支持哪些引擎

show engines;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • MySQL DBA 常用手册小结

    MySQL DBA 常用手册小结

    MySQL DBA 常用手册小结,使用mysql的朋友可以参考下。
    2011-11-11
  • mysql 8.0.15 下载安装详细教程 新手必备!

    mysql 8.0.15 下载安装详细教程 新手必备!

    这篇文章主要为大家详细介绍了mysql 8.0.15 下载安装详细教程,纯新手教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • MySQL存储引擎总结

    MySQL存储引擎总结

    这篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎、MyISAM、InnoDB、MEMORY、MERGE等内容,需要的朋友可以参考下
    2014-09-09
  • MySQL数据库中存储图片和读取图片的操作代码

    MySQL数据库中存储图片和读取图片的操作代码

    在MySQL数据库中存储图片通常有两种主要方式:将图片以二进制数据(BLOB 类型)直接存储在数据库中,或者将图片文件存储在服务器文件系统上,而在数据库中存储图片的路径或URL,以下是这两种方法的详细解释,包括存储和读取操作,需要的朋友可以参考下
    2024-11-11
  • mysql5.7以上版本配置my.ini的详细步骤

    mysql5.7以上版本配置my.ini的详细步骤

    这篇文章主要为大家详细介绍了mysql5.7以上版本配置my.ini的详细步骤,文中每一步介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • MySQL查看锁的实现代码

    MySQL查看锁的实现代码

    本文主要介绍了MySQL查看锁的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Mac 安装和卸载 Mysql5.7.11 的方法

    Mac 安装和卸载 Mysql5.7.11 的方法

    本文给大家介绍Mac 安装和卸载 Mysql5.7.11 的方法,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-03-03
  • mysql 5.7.15 安装配置方法图文教程

    mysql 5.7.15 安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.15安装配置方法图文教程,感兴趣的朋友可以参考一下
    2016-09-09
  • CentOS mysql安装系统方法

    CentOS mysql安装系统方法

    CentOS mysql安装还是很常用的软件,我就学习如何CentOS mysql安装,在这里拿出来和大家分享一下,希望对大家有用。
    2010-11-11
  • MySQL中的主键以及设置其自增的用法教程

    MySQL中的主键以及设置其自增的用法教程

    这篇文章主要介绍了MySQL中的主键以及设置其自增的用法教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11

最新评论