mysql collate
今天在看建表的sql语句时,突然看到如果字段为varchar类型时,会设置一下CHARACTER SET utf8 COLLATE utf8_bin,后来看了一下网上的贴子,设置collate的主要作用是设置对自符的较难规则。 举个例子吧: 按下面的sql语句去搜索 select to_id from test where to_id='cn象_王';
出现的结果会搜索出两条来 +---------------+ | to_id | +---------------+ | cn陶_陶 | | cn象_王 | +---------------+ 为什么?“cn陶_陶”与“cn象_王”编码后的字符都不一样,但是为什么mysql会认为这两条记录是一样的呢? 如果把COLLATE **_bin都改成一样的,那结果就对了。 这里先解释一下mysql collation的命名规则: 它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束 原来MySQL按照下面的方式选择表字符集和校对规则: 如果指定了CHARACTER SET X和COLLATE Y,那么采用CHARACTER SET X和COLLATE Y。 如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。 否则,采用服务器字符集和服务器校对规则。 下面总结一下一般的建表的sql语句吧: CREATE TABLE `product` ( `SITE` varchar(32) NOT NULL, `id` bigint(20) NOT NULL, `gmt_create` datetime NOT NULL DEFAULT '1999-09-09 00:00:00','创建时间' //时间的设置 `gmt_modified` datetime NOT NULL DEFAULT '1999-09-09 00:00:00','修改时间' `PROVINCE` varchar(128)CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,'省' //如果是字符则要这样设 PRIMARY KEY (`id`), //设置主键 KEY `idx_offer_mid_st_ge_gid_tp` (`member_id`,`STATUS`,`GMT_EXPIRE`,`group_id`,`TYPE`), //设置索引 KEY `idx_test` (`member_id`,`GMT_EXPIRE`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 原文链接:http://hi.baidu.com/linda_lij/item/b653f1aedc67f7ac28ce9deb
转载于:https://www.cnblogs.com/ahauzyy/archive/2012/08/08/3043356.html
mysql collate相关推荐
- mysql COLLATE=utf8mb4_unicode_ci
记一次mysql COLLATE=utf8mb4_unicode_ci的坑 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (u ...
- mysql collate是什么意思_mysql中的collate关键字是什么意思?
CREATE TABLE `tb_order` ( `order_id` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '订单id', `paym ...
- mysql字符集调整总结
mysql字符集调整总结 --http://xjsunjie.blog.51cto.com/999372/1355013 字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库 ...
- thinkphp mysql exp_thinkphp备份数据库的方法分享
貌似THINKPHP没有备份数据库的方法,所以我自己写了一个,数据库连接和事务处理用的是pdo,如果有需要的可以联系我,写个mysql或者mysqli的 class SqlAction extends ...
- 十三周二次课(6月20日)
13.4 MySQL用户管理 场景,为了安全,新建的站点,创建新的用户,或者给予使用已有账户,给予权限 MySQL创建用户以及授权 mysql> grant all on *.* to 'aik ...
- ci框架 mysql 超时时间_mysql 字符集和校验规则( CHARSET amp; COLLATE)
我们首先看下常见建表语句: mallAllGoodsCREATE TABLE `qywl`.`mallAllGoods` ( `id` varchar(64) NOT NULL COMMENT '主键 ...
- mysql的collate_MYSQL中的COLLATE是什么?
文章目录 [隐藏] 在mysql中执行show create table 指令,可以看到一张表的建表语句,example如下: CREATE TABLE `table1` ( `id` bigint( ...
- mysql的collate什么意思_MYSQL中的COLLATE是什么?
在mysql中执行show create table 指令,可以看到一张表的建表语句,example如下: CREATE TABLE `table1` ( `id` bigint(20) unsign ...
- mysql中新建数据库create table的COLLATE是什么?
在mysql中执行show create table <tablename>指令,可以看到一张表的建表语句,example如下: CREATE TABLE `table1` (`id` b ...
最新文章
- 爬取豆瓣电影排名前250部电影并且存入Mongo数据库
- IOS成长之路-检测耳机插入/拔出
- django项目简单调取百度翻译接口
- 在xcode上把你的app多语言国际化(NSLocalizedString)
- Spring中的Spring JSR-250 注释
- Linux 应用程序的源码包如何安装?
- mean shift 图像分割(一、二、三)
- python代码翻译器-python写的翻译代码
- UE4开发六:人物动画
- Linux:使用libgen.h:basename,dirname
- C++ 第三课:常量转义字符
- 在deepin系统下安装git
- 字数统计,一个英文字母算一个字,一个汉字算一个字,一个符号算一个字
- pycharm社区版搭建配置django2.2.16开发环境
- 在centOS中安装以及使用vim编辑器
- 查看服务器配置以及常用命令
- qt有关tcpserver中读取数据时是否使用flush时的研究
- Twitter将开通直播打赏功能 帮助美国网红赚钱
- 【Some】【心学】心学精华,人生要旨
- 管理学中常用的激励理论