位置: 编程技术 - 正文
推荐整理分享MySQL表排序规则不同错误问题分析(mysql中排序规则是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql排序语法,mysql表的排序规则,mysql数据库排序,mysql数据库排序,mysql排序语法,mysql排序方式,mysql表的排序规则,mysql表排序规则怎么改,内容如对您有帮助,希望把文章链接给更多的朋友!
MySQL多表join时报错如下:[Err] ? Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=
就是说两个表的排序规则(COLLATION)不同,无法完成比较。COLLATION是用在排序,大小比较上,一个字符集有一个或多种COLLATION,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二进制)结束。在做比较时,应该确保两个表的字符排序相同。一般建表的时候不指定,可以走默认的,全是默认的就没什么问题了。
下面来模拟一下各种场景,表结构如下(utf8默认排序规则为utf8_general_ci):
查看表默认排序规则集
查看列排序规则集
从utf8升级为utf8mb4是不支持online ddl的,如下:
从utf8.utf8_general_ci变更为utf8.utf8_unicode_ci是不支持online ddl的,如下:
如果使用下面这种方式修改字符集,你会发现,只更改了表级的,没有更改列级的。
所以真正改字符集的时候别忘了加上CONVERT TO,如下:
要仅仅改变一个表的默认字符集,应使用此语句:
可以发现列字符集没有改变,并且只有新的列才会默认继承表的字符集(utf8.utf8_general_ci)。
总结
标签: mysql中排序规则是什么意思
本文链接地址:https://www.jiuchutong.com/biancheng/348361.html 转载请保留说明!友情链接: 武汉网站建设