我有一个
MySQL数据库,其中含有西班牙语(áéíóú)的口音.我想知道是否有任何办法进行干扰敏感搜索.例如,如果我搜索“lapiz”(没有口音),我想从我的数据库中获取包含单词“lápiz”的结果.我当前正在进行的查询方式如下:
$result = MysqL_query("SELECT * FROM $lookuptable WHERE disabled = '0' AND name LIKE '%$q%' OR productCode LIKE '%$q%' LIMIT $sugglimit");
这是一个网上商店,所以我不知道会有人搜索…“lapiz”就是和例子.
alt text http://www.freeimagehosting.net/uploads/0e7c2ae7d5.png
谢谢!
字符集整理,而不是我的最爱,但他们的工作:
MysqL> SET NAMES latin1; MysqL> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 0 | +-----------------------+ 1 row in set (0.01 sec) MysqL> SET NAMES utf8; MysqL> SELECT 'lápiz' LIKE 'lapiz'; +-----------------------+ | 'lápiz' LIKE 'lapiz' | +-----------------------+ | 1 | +-----------------------+ MysqL> SET NAMES latin1; MysqL> SELECT _utf8'lápiz' LIKE _utf8'lapiz' ; +---------------------------------+ | _utf8'lápiz' LIKE _utf8'lapiz' | +---------------------------------+ | 1 | +---------------------------------+
阅读手册的一个很好的章节:Character Set Support