详解MYSQL中COLLATE的作用及各种COLLATE区别
文 / @UTHEME
在MySQL中,COLLATE关键字用于指示MySQL如何对字符类型的列进行排序和比较。COLLATE的设置不仅会影响ORDER BY语句的顺序,还会影响WHERE条件中大于和小于号等条件筛选的结果,以及DISTINCT、GROUP BY、HAVING等语句的查询结果。此外,如果索引列是字符类型,在MySQL建立索引时也会受到COLLATE的影响。
每个CHARSET都有多个支持的COLLATE,且每个CHARSET都有一种默认的COLLATE。对于Latin1编码,默认的COLLATE为latin1_swedish_ci,对于GBK编码,默认的COLLATE为gbk_chinese_ci,对于utf8mb4编码,默认的COLLATE为utf8mb4_general_ci。
值得注意的是,从MySQL 8.0开始,默认的CHARSET已经不再是Latin1了,而改为了utf8mb4,且默认的COLLATE也改为了utf8mb4_0900_ai_ci。不少人推荐使用utf8mb4_unicode_ci,但是对于已经使用了utf8mb4_general_ci的系统,并没有必要进行修改。
在MySQL中,COLLATE可以在实例级、库级、表级、列级和SQL语句中指定设置。此外,在SQL查询时,可以明确指定COLLATE,以覆盖任何库、表和列的COLLATE设置。
在系统设计中,应尽量避免让系统严重依赖中文字段的排序结果。在MySQL的查询中,也应该尽量避免使用中文作为查询条件。

相关文章
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
mysql怎样查询日期范围 2023-05-14 07:00:02
-
如何解决MySQL 1075错误 2023-05-14 07:00:02
-
mysql怎么查询数据并起别名 2023-05-14 07:00:02