我有一个存储希腊文本的MySQL数据库。 我希望能够使用诸如以下的关键字来搜索该数据库:
SELECT * FROM table1 WHERE column1 LIKE "%Ελληνικά%"
但是,看起来MySQL中的字符串比较函数对希腊字符区分大小写,而且对重音敏感,因此,如果关键字不具有确切的大小写和重音,则找不到匹配项。
我的解决方案是替换所有大写字母,重音字符将使用REGEXP_REPLACE函数降低SELECT语句中的非重音字符。但是我的MySQL版本5.6不支持此功能(无法升级)。
因此,一种选择是改为使用嵌套的REPLACE函数。每侧将有40个休息的REPLACE函数:
SELECT * FROM table1 WHERE
REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE([**string to compare 1**],
'ά','α'),'Ά','α'),'Α','α'),
'έ','ε'),'`Ε','ε'),'Ε','ε')... LIKE
REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE([**string to compare 2**],
'ά','α'),'Ά','α'),'Α','α'),
'έ','ε'),'`Ε','ε'),'Ε','ε')...
我担心这会使搜索速度变慢。嵌套的REPLACE函数是唯一的解决方案吗?还是我还能做些什么?
谢谢!