您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MySQL中的口音不敏感搜索查询

MySQL中的口音不敏感搜索查询

您可以在运行时在SQL查询中更改排序规则,

...where title like '%torun%' collate utf8_general_ci

但是请注意,在运行时即时更改排序规则会放弃MysqL使用索引的可能性,因此大型表的性能可能很糟糕。

或者,您可以将列复制到另一列,例如searchable_title,但是更改其排序规则。这种类型的工作实际上很常见,您可以在其中复制数据,但以某种略有不同的形式进行数据处理,并针对某些特定的工作负载/用途进行了优化。您可以使用触发器作为使重复的列保持同步的好方法。如果建立索引,此方法有可能表现良好。

注意- 确保您的数据库确实包含这些字符,而不包含html实体。同样,连接的字符集也很重要。上述假定它的设置为utf8,例如,通过集名set names utf8

如果不是,则需要一个引荐词作为文字

...where title like _utf8'%torun%' collate utf8_general_ci

当然,单引号中的值实际上必须是utf8编码的,即使其余的SQL查询不是。

MySQL 2022/1/1 18:13:37 有727人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶