MySQL不区分大小写搜索UTF8处理拉丁大写/小写

时间:2015-11-23 05:11:01

标签: php mysql utf-8 latin1

人。 我是MySQL编程的新手,我已经尝试了所有的东西来管理它。

我想使用/不使用重音符号,小写字母或大写字母进行不敏感搜索,并返回相同的结果。

SELECT * FROM table WHERE campo_pesquisado LIKE '%termo_pesquisado%' ORDER BY campo_pesquisado ASC

所以,在我的DB(MyISAM - collat​​ion utf8_general_ci)中我有这个

+---------+--------+
| campo_pesquisado |
+---------+--------+
|   São Paulo     |
|   SÃO JOÃO     |

我想键入termo_pesquisado(keywords)=圣保罗,圣保罗,圣保罗或“圣保罗”的任意组合,以获得圣保罗的回报(在浏览器中显示)正确 - 圣保罗)来自数据库。

问题

如果我输入“sãopaulo,SãOPULOO或任何与”ã“小写字母组合的作品。这是因为ã的UTF-8相应代码ã。如果我搜索圣保罗,Ã字母变为Ã,完整的单词将SÃOPULO,显然不等于圣保罗

TRYING

为了解决这个问题,我试过这个代码,但不适合我。

 SELECT *, CONVERT(CAST( campo_pesquisado AS BINARY) USING utf8) FROM table WHERE CONVERT(CAST( campo_pesquisado AS BINARY) USING utf8) LIKE '%termo_pesquisado%' ORDER BY campo_pesquisado ASC

重要

我不能改变我的整理。我们必须使用utf8作为表格的char编码。它更适合多语言用途。

我正在使用PHP(5.5)和最新版本的MySQL。

0 个答案:

没有答案