加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL DISTINCT和重音

发布时间:2020-12-11 23:44:43 所属栏目:MySql教程 来源:网络整理
导读:在Debian上运行的MySQL数据库(版本5.5.41-0 wheezy1-log). 列名为VARCHAR(128)和引擎的表酒店是InnoDB. CREATE TABLE `hotels` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT `name` varchar(128) NOT NULL DEFAULT '' COMMENT 'Hotel Name',PRIMARY KEY

在Debian上运行的MySQL数据库(版本5.5.41-0 wheezy1-log).

列名为VARCHAR(128)和引擎的表酒店是InnoDB.

CREATE TABLE `hotels` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT
  `name` varchar(128) NOT NULL DEFAULT '' COMMENT 'Hotel Name',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

此表中有两条记录:

1    BEST WESTERN PREMIER LE CARRE FOLIES OPERA
2    BEST WESTERN PREMIER LE CARRé FOLIES OPéRA

执行select DISTINCT name FROM酒店时,查询只返回1条记录,而预计会返回2条记录.

DBMS在E和é之间似乎没有区别.

如何更改表设置以获得预期结果?

最佳答案 表格排序设置为utf8_general_ci.这是MySQL服务器和架构的默认设置.

MySQL 5.5中有3个排序规则名称:

>以_ci结尾的名称表示不区分大小写的排序规则.
>以_cs结尾的名称表示区分大小写的排序规则.
>以_bin结尾的名称表示二进制排序规则.字符比较基于字符二进制代码值.

整理必须更改为utf8_bin.可以使用此查询对表和所有列执行此操作:

ALTER TABLE hotels CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读