字段的字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 , 结果有一个sql语句执行时,报错如下: Illegalmixofcollations (utf8
select * from table_a a left join table_b b on a.field_a = b.field_b error: Illegal mix of collations (utf8...resolve:将比较等式的一边进行字符串转换,如:“CONVERT(a.field_a USING utf8) COLLATE utf8_unicode_ci” select * from table_a...a left join table_b b on CONVERT(a.field_a USING utf8) COLLATE utf8_unicode_ci = b.field_b 注:utf8_general_ci...utf8_unicode_ci:准确度高,校对速度慢。
_unicode_ci default null comment '联系人姓名', addressDesc varchar(50) collate utf8_unicode_ci default null...comment '收货地址明细', postCode varchar(15) collate utf8_unicode_ci default null comment '邮编', tel varchar...(20) collate utf8_unicode_ci default null comment '联系人电话', createdBy bigint default null comment '创建者..._unicode_ci default null comment '账单编码', productName varchar(20) collate utf8_unicode_ci default null...(20) collate utf8_unicode_ci default null comment '供应商联系人', proPhone varchar(20) collate utf8_unicode_ci
DEFAULT '' COMMENT '设备', `browser` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT..._unicode_ci NOT NULL DEFAULT '' COMMENT '链接名称', `url` text COLLATE utf8_unicode_ci NOT NULL COMMENT...'url完整地址', `utm_campaign` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '缩略名',...`utm_source` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '来源', `utm_medium`...utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '关键词', `utm_content` varchar(255) COLLATE utf8_unicode_ci
-- 表的结构 `user` -- CREATE TABLE `user` ( `id` int(11) NOT NULL, `username` varchar(255) COLLATE utf8..._unicode_ci NOT NULL, `auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `password_hash` varchar...(255) COLLATE utf8_unicode_ci NOT NULL, `password_reset_token` varchar(255) COLLATE utf8_unicode_ci...DEFAULT NULL, `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `status` smallint(6) NOT NULL...created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8
student` -- CREATE TABLE `student` ( `id` int(50) NOT NULL auto_increment, `name` varchar(50) collate utf8..._unicode_ci NOT NULL, `dept` varchar(50) collate utf8_unicode_ci NOT NULL, `class` varchar(50) collate...utf8_unicode_ci NOT NULL, `sex` varchar(50) collate utf8_unicode_ci NOT NULL, `dept_id` int(50) NOT...NULL, `class_id` int(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8
Yes | 1 | | utf8_bin | utf8 | 83 | | Yes | 1 | | utf8...而utf8_general_ci和utf8_unicode_ci是不区分大小写的。 utf8_general_ci和utf8_unicode_ci对中、英文来说没有实质的差别。...utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß'等于‘ss'。...这意味着utf8_general_ci比较规则进行的比较速度很快,但是与utf8_unicode_ci相比,比较正确性较差。...utf8_general_ci相对于utf8_unicode_ci来说校对速度快,但是如果你的应用有德语、法语或者俄语,建议使用utf8_unicode_ci。
2、配置MariaDB的字符集 vi /etc/my.cnf 在[mysqld]标签下添加 init_connect='SET collation_connection = utf8_unicode_ci...' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake...Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8..._unicode_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +--
default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8..._unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci...default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8..._unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci..._unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci
--- -- -- 表的结构 `upload` -- CREATE TABLE `upload` ( `id` int(11) NOT NULL, `name` text COLLATE utf8..._unicode_ci NOT NULL COMMENT '文件名', `time` text COLLATE utf8_unicode_ci NOT NULL COMMENT '文件创建日期',...`path` text COLLATE utf8_unicode_ci NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
_unicode_ci DEFAULT NULL COMMENT '联系人姓名', `addressDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT..._unicode_ci DEFAULT NULL COMMENT '账单编码', `productName` varchar(20) COLLATE utf8_unicode_ci DEFAULT...NULL COMMENT '商品名称', `productDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品描述',...COMMENT '供应商名称', `proDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '供应商详细描述', `...) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系电话', `proAddress` varchar(50) COLLATE utf8_unicode_ci
utf8_unicode_ci 与 utf8_general_ci 的区别 当前,utf8_unicode_ci 校对规则仅部分支持 Unicode 校对规则算法。一些字符还是不能支持。...utf8_unicode_ci 的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’。...这意味着 utf8_general_ci 校对规则进行的比较速度很快,但是与使用 utf8_unicode_ci 的校对规则相比,比较正确性较差)。...使用 对于一种语言仅当使用 utf8_unicode_ci 排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。...例如,对于德语和法语,utf8_unicode_ci 工作的很好,因此不再需要为这两种语言创建特殊的 utf8 校对规则。
那天遇到的问题是这样子的, Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for...但是我遇到的场景是数据表级别已经是utf8_unicode_ci,而字段级别是utf8_general_ci,(这里我们关心的字段类型是varchar)。...MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8...= 'utf8_unicode_ci' ); database需要改成实际数据库名字。需要注意的是,如果要修改的字段存在外键关系,那就要小心处理,删除外键,修改collation后再把外键关系加回来。
server.cnf 首先是配置文件/etc/my.cnf.d/server.cnf,在[mysqld]标签下添加 init_connect='SET collation_connection = utf8..._unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci...Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8..._unicode_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +
forum_id tinyint(5) unsigned NOT NULL, cat_id tinyint(3) unsigned NOT NULL, name varchar(250) collate utf8...date), KEY userid (userid), KEY last_userid (last_userid) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8...TABLE IF NOT EXISTS frm_thread_data ( thread_id int(10) unsigned NOT NULL, message mediumtext collate utf8..._unicode_ci NOT NULL, PRIMARY KEY (thread_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
姓名 phone 电话 collegeId 学生所在学院ID(外键) SQL语句: CREATE TABLE `student` ( `studentId` varchar(255) COLLATE utf8..._unicode_ci NOT NULL, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(255) COLLATE...utf8_unicode_ci NOT NULL, `collegeId` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY...collegeId 学院ID(主键) collegeName 学院名 SQL语句: CREATE TABLE `college` ( `collegeId` varchar(255) COLLATE utf8...`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 数据: 内连接 内连接就是表间的主键与外键相连,只取得键值一致的
' COMMENT '操作类型:1新增2修改3删除', `tableid` bigint(20) DEFAULT NULL, `tablename` varchar(255) COLLATE utf8..._unicode_ci DEFAULT NULL COMMENT '表名', `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,..._unicode_ci, `tbvalue` longtext COLLATE utf8_unicode_ci, `currenttbvalue` longtext COLLATE utf8_unicode_ci..., `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`tbid`) ) ENGINE=InnoDB...AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `t_classes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `classes_name` varchar(255) COLLATE utf8...`create_time`), KEY `idx_student_num` (`student_num`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8...`idx_user` (`student_id`), KEY `idx_score` (`score`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8..._unicode_ci NOT NULL COMMENT '身份证号', `address` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT..._unicode_ci NOT NULL COMMENT '身份证号', `address` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT
领取专属 10元无门槛券
手把手带您无忧上云