Mysql 搜索 LIKE 并可选法语字符

标签 mysql full-text-search

我的数据库中有这样的名字

tést

自动完成工作正常,如果我像这样搜索它:

WHERE title LIKE '%tèst%'

效果很好。但现在我也想在用户输入时找到这个条目

test

(不带重音符号)。在大多数情况下,自动完成可以修复用户的问题,但当然并非总是如此。如何更改查询,以便针“test”也找到“tést”(其他方式并不重要)?

最佳答案

这对我有用。

我使用 utf8 字符集和 utf8_general_ci 排序规则在 MySQL 5.5.8 上对此进行了测试。

我尝试搜索 where title like '%tèst%'where title like '%test%',两个查询都返回“tèst”和“test” “,这似乎是你想要的。

这不适合你吗?

mysql> create table french (
    -> title text
    -> ) default charset = utf8, default collate = utf8_general_ci;
Query OK, 0 rows affected (0.13 sec)

mysql> 
mysql> insert into french values ('tèst');
Query OK, 1 row affected (0.00 sec)

mysql> insert into french values ('test');
Query OK, 1 row affected (0.00 sec)

mysql> insert into french values ('toast');
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> select * from french where title like '%tèst%';
+-------+
| title |
+-------+
| tèst  |
| test  |
+-------+
2 rows in set (0.00 sec)

mysql> select * from french where title like '%test%';
+-------+
| title |
+-------+
| tèst  |
| test  |
+-------+
2 rows in set (0.00 sec)

关于Mysql 搜索 LIKE 并可选法语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408188/

相关文章:

php - MySQL PHP 如果表中的关键字短语不存在于句子表中显示结果

ruby-on-rails - Elasticsearch匹配字段=值(不包含)

Elasticsearch - 启用字段的全文搜索

Mysql 如何使用 UTF8 字符集添加 varchar(21884) 列?

php - 将数据从一个数据库插入另一台服务器上的另一个数据库 - 服务器未链接

php - Mysql在查询之间多次

ruby-on-rails - 带mongoid的elasticsearch-rails-本文的未定义方法as_indexed_json

php - 使用时间戳制作网址,日期和时间之间的空格会破坏网址

php - MySQL:如何仅使用一个查询获取表中不存在 ID 的百分比

sql-server - 使用 CONTAINS 进行全文搜索