How to conduct an Accent Sensitive search in MySql(如何在 MySql 中进行口音敏感搜索)
问题描述
我有一个带有 utf8 通用 ci 排序规则的 MySQL 表.在表格中,我可以看到两个条目:
I have a MySQL table with utf8 general ci collation. In the table, I can see two entries:
阿巴德
阿巴德
我正在使用如下所示的查询:
I am using a query that looks like this:
SELECT * FROM `words` WHERE `word` = 'abád'
查询结果给出两个词:
阿巴德
阿巴德
有没有办法表明我只想让 MySQL 找到重音词?我希望查询只返回
Is there a way to indicate that I only want MySQL to find the accented word? I want the query to only return
阿巴德
我也试过这个查询:
SELECT * FROM `words` WHERE BINARY `word` = 'abád'
它没有给我任何结果.谢谢你的帮助.
It gives me no results. Thank you for the help.
推荐答案
如果您对该字段的搜索总是区分重音,则将该字段的排序规则声明为 utf8_bin(这将比较 utf8-encoded bytes) 或使用特定于语言的排序规则来区分重音字符和非重音字符.
If your searches on that field are always going to be accent-sensitive, then declare the collation of the field as utf8_bin (that'll compare for equality the utf8-encoded bytes) or use a language specific collation that distinguish between the accented and un-accented characters.
col_name varchar(10) collate utf8_bin
如果搜索通常不区分重音,但您想为此搜索设置例外,请尝试;
If searches are normally accent-insensitive, but you want to make an exception for this search, try;
WHERE col_name = 'abád' collate utf8_bin
这篇关于如何在 MySql 中进行口音敏感搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 MySql 中进行口音敏感搜索
基础教程推荐
- 在 SQL 中连接多个表 2021-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- 无法解决整理冲突 2021-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
