gpt4 book ai didi

php - Opencart - 搜索不考虑口音

转载 作者:IT王子 更新时间:2023-10-29 00:35:25 31 4
gpt4 key购买 nike

Opencart的基本搜索已经写了很多次了..好吧,我遇到了这个问题:

当客户在我的国家(斯洛伐克 (UTF8))搜索产品时,他可能不会使用变音符号。所以他/她写下“cucoriedka”却一无所获。

但是,数据库中有名为“čučoriedka”的产品,我也希望它显示出来,因为这正是他要找的。

您知道如何完成这项工作吗?越简单越好!

最佳答案

我不了解斯洛伐克语,对不起。但是斯洛伐克归类 utf8_slovak_ci 将斯洛伐克字母 čc 区别对待。 (在您的电话簿中,以 Č 开头的姓氏是否都在以 C 开头的姓氏之后?他们可能是这样的。MySQL 的创建者当然认为他们是这样的。)

排序规则 utf8_general_cičc 视为相同。这是一个演示所有这些的 sql fiddle。 http://sqlfiddle.com/#!9/46c0e/1/0

如果您将包含产品名称的列的排序规则更改为 utf8_general_ci,您将获得一个更易于搜索的表格。假设您的表名为 product,其中包含名称的列名为 product_name。然后,此 SQL 数据定义语句将根据需要转换列。您应该查找列的实际数据类型,而不是像我在此示例中所做的那样使用 varchar(nnn)

 alter table product modify product_name varchar(nnn) collate utf8_general_ci

如果您无法更改表,则可以更改 WHERE 子句使其像这样工作,明确指定排序规则。

WHERE 'userInput' COLLATE utf8_general_ci = product_name

但这比更改列排序规则搜索起来要慢。

关于php - Opencart - 搜索不考虑口音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740131/

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