栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL匹配具有ASCII版本的Unicode字符

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL匹配具有ASCII版本的Unicode字符

您指定的

name
text CHARACTER SET utf8 COLLATE utf8_unipre_ci
告诉MySQL 在匹配和排序时将
eé 视为等效。这种归类和
utf8_general_ci
两者使很多事情都等效。

一旦您学习了如何阅读图表,http://www.collat​​ion-
charts.org/
是一个很好的资源,这很容易。

如果希望将 eé 等视为不同,则必须选择其他排序规则。要找出服务器上的排序规则(假设您限于UTF-8编码):

mysql> show collation like 'utf8%';

并选择使用归类图作为参考。

还有一个特殊的排序规则

utf8_bin
,其中没有对等项,它是二进制匹配项。

唯一的MySQL的Unipre排序规则我所知道的是不特定语言的

utf8_unipre_ci
utf8_general_ci
utf8_bin
。他们很奇怪。排序规则的真正目的是使计算机像人们期望的那样进行匹配和排序。匈牙利语和土耳其语字典的条目根据不同的规则排序。指定排序规则后,您可以根据此类本地规则进行排序和匹配。

例如,丹麦人似乎认为e和é等效,但冰岛人则不这样做:

mysql> select _utf8'e' collate utf8_danish_ci    -> = _utf8'é' collate utf8_danish_ci as equal;+-------+| equal |+-------+|     1 |+-------+mysql> select _utf8'e' collate utf8_icelandic_ci    -> = _utf8'é' collate utf8_icelandic_ci as equal;+-------+| equal |+-------+|     0 |+-------+

另一个方便的技巧是用一堆您感兴趣的字符填充一列表(通过脚本更容易),然后MySQL可以告诉您等效项:

mysql> create table t (c char(1) character set utf8);mysql> insert into t values ('a'), ('ä'), ('á');mysql> select group_concat(c) from t group by c collate utf8_icelandic_ci;+-----------------+| group_concat(c) |+-----------------+| a    || á    || ä    |+-----------------+mysql> select group_concat(c) from t group by c collate utf8_danish_ci;+-----------------+| group_concat(c) |+-----------------+| a,á  || ä    |+-----------------+mysql> select group_concat(c) from t group by c collate utf8_general_ci;+-----------------+| group_concat(c) |+-----------------+| a,ä,á|+-----------------+


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号