我的数据库中有这样的名字
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/