MySQL中用于希腊字符的字符串比较功能

时间:2019-07-19 06:13:19

标签: mysql string-comparison

我有一个存储希腊文本的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函数是唯一的解决方案吗?还是我还能做些什么?

谢谢!

0 个答案:

没有答案