gpt4 book ai didi

Mysql搜索将欧洲字符解释为非欧洲字符

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

当我搜索包含字母“a”的字符串时,该字母也会匹配包含字母“ä”和“å”的单词。

因此,如果我搜索“anna”,它会匹配包含“känna”的文本。如果我搜索“manda”,它会匹配“månda”。

数据库字符集是:latin1表字符集:utf8mb4

我可以通过搜索特定行和特定列来测试它:

SELECT * FROM events AS e  
WHERE e.content LIKE '%anna%' AND e.id = 1230

这将返回该行 (1230)。如果我从该行的“content”列中删除包含“känna”的行,则不会有匹配项。因此它将所有基于“a”的欧洲字符也解释为“ä”或“å”。

如何纠正这个问题?

编辑:

好的,这是一个 fiddle : fiddle

显示创建表事件输出:(我删除了一些列):

CREATE TABLE `events` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`content` longtext COLLATE utf8mb4_unicode_ci,
`event_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1242 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

最佳答案

尝试指定字符集并为您的文字进行整理:

SELECT * FROM events AS e  
WHERE e.content LIKE _utf8mb4 '%anna%' COLLATE utf8mb4_unicode_ci AND e.id = 1230

关于Mysql搜索将欧洲字符解释为非欧洲字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55396994/

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