人。 我是MySQL编程的新手,我已经尝试了所有的东西来管理它。
我想使用/不使用重音符号,小写字母或大写字母进行不敏感搜索,并返回相同的结果。
SELECT * FROM table WHERE campo_pesquisado LIKE '%termo_pesquisado%' ORDER BY campo_pesquisado ASC
所以,在我的DB(MyISAM - collation 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。