gpt4 book ai didi

mysql - 如何在 mysql 中正确处理 dakuten 和 handakuten 日文字符?

转载 作者:行者123 更新时间:2023-11-29 04:36:07 25 4
gpt4 key购买 nike

免责声明:

  1. 数据库是 ut8mb4_unicode_520_ci
  2. 表字段为ut8mb4_unicode_520_ci

如何正确查询包含日语日语字符的表字段? Dakuten .

目前,似乎返回了基本字符,即使是针对 tenten 版本运行查询也是如此。

示例数据

给定 。还有一行 ID: 199, post_title: 'へ';

场景一

运行:

SELECT 'へ' = 'ぺ'; 

-- Returns 0. Correct

场景二

运行:

SELECT ID, post_title 
FROM wp_posts
WHERE post_title = 'へ';

-- Returns row 199. Correct

场景三

但是,出于某种原因,当我运行此查询时,它仍然返回记录 199,并指出不同的标题值。

运行:

SELECT ID, post_title 
FROM wp_posts
WHERE post_title = 'ぺ';

-- Returns row 199. Incorrect

示例图片

图像会更好地解释(我只是使用联合来更好地显示一个屏幕截图中的所有内容):

enter image description here

是否有可靠的方法来处理这些角色?所有其他日语字符似乎都可以正常工作,只是 dakuten 版本仅在查询中被视为它们的基础。

最佳答案

这是因为您使用的排序规则(utf8mb4_unicode_ci、utf8mb4_unicode_520_ci 和 utf8mb4_0900_ai_ci)仅比较字符的基本字母。比如'ぺ'='へ'+U+309A◌゚,'へ'是'ぺ'的基字母。所以对于你的情况,所有 3 个字符的基本字母都是相同的,'へ'。因此,这些归类返回“1”是正确的结果。

MySQL 团队正在为 utf8mb4 字符集开发新的日文排序规则。它会将这些 dakuten 字符与基本字符区分开来。它很快就会到来。

关于mysql - 如何在 mysql 中正确处理 dakuten 和 handakuten 日文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41106733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com