首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使MySQL匹配‘%D%’=> `Đ‘

如何使MySQL匹配‘%D%’=> `Đ‘
EN

Stack Overflow用户
提问于 2011-06-14 19:33:39
回答 4查看 3.3K关注 0票数 3

我遇到了一个非常令人沮丧的特性,由于某些原因,涉及select LIKE %D%的查询将与Đ不匹配。

然而,所有类似于此的其他字符都匹配。%n%匹配ñ%o%匹配,但是如果我在搜索%Dong Nai%,则不会得到Đồng Nai

尽管%Thua Thien-Hue%将与Thừa Thiên-Huế相匹配

这是一个MySQL特性还是硬编码到Unicode中的东西,还是有办法解决这个问题?这使得使用我的网站的人无法找到关于某些越南省份的事件,除非他们能够访问Đ密钥,而在美国几乎没有人这样做。

编辑:

对于一个讲越南语的人来说,a,e,i,o或u匹配所有越南元音这一事实是非常出乎意料的行为。

这是越南语的所有元音。

a、á、̉,ạ、a、ằ,ắ,ẵ,ẳ,ặ,ă,ầ,ấ,ẫ,ẩ,ậ、α、èe、é、ẽ,ẻ,ẹ、e、ề,ế,ễ,ể,ệ、存在、μ、í、ĩ,ỉ,ị、i、“、”ỡ,ở,ợ,ơ,ư,ú,ũ,ủ,ụ,u,ừ,ứ,ữ,ử,ự,ư

我的问题是:“什么是不同的字母?”

似乎其他讲越南语的人向MySQL:报告了这个错误

此行为在5.6+中似乎不存在。如果MySQL的更新有帮助,我会告诉您的。

http://bugs.mysql.com/bug.php?id=61258

EN

回答 4

Stack Overflow用户

发布于 2011-06-14 19:43:51

这和校对有关。查看http://www.collation-charts.org/mysql60/,您将看到D和字符Đ在进行比较时是不一样的。正如nico在注释中所建议的,在进行比较时,最简单(虽然不是最快)的方法是用D代替Đ。但是,这可能不实用,取决于性能标准,在这种情况下,您可能希望保留一个单独的列或内容表,该列或表在将数据插入数据库时已进行了调整以替换某些字符。

票数 2
EN

Stack Overflow用户

发布于 2011-07-22 02:22:16

这些越南元音和它们的变体基本上是相等的(具有相同的基本字符),但又是次要的(方言)不同。使用适当的排序规则可以使它们相等。

但是,对于'D‘和'Đ’来说,这是不同的,因为它们不是相关字符,也不等于任何排序规则。因此,需要将这两个字母进行比较。

在MySQL中实现越南校对

票数 1
EN

Stack Overflow用户

发布于 2020-02-26 06:38:20

与MySQL 8.0中的utf8mb4_0900_ai_ci排序规则一样,'%D%‘现在可以与'Đ’匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6349011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档