创建mysql的表时,如果collate选择uft-8_general_ci ,则表明一般比较,不区分大小写,
而选择utf8-bin表明严格区分大小写。
我们将collate称为排序规则,创建表时,一般会选择排序规则,列的排序规则默认与表的一样
CREATE TABLE `t_user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_unicode_ci;
CREATE TABLE `t_user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_bin;
当collate=uft-8_general_ci 时
对应的效果是:
SELECT * from t_user where name='abc';
与
SELECT * from t_user where name='Abc';
效果一致,不区分大小写
当collate=uft8-bin 时
SELECT * from t_user where name='abc';
与
SELECT * from t_user where name='Abc';
查询的效果不同
值得注意的是,列可以选择自己的collate,列的优先级高于表的collate优先级,通过navicate可以设置表和列的collate,如下图

列的collate
表的collate的设置

表的collate
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END




















暂无评论内容