MySQL和波兰语单词

时间:2010-08-17 19:47:52

标签: mysql character

我注意到使用MySQL的“非英语”(波兰语)字符存在问题。

查询“select”abcde'='ąbćdę'“返回”1“并且字符串不等于......

你可以帮帮我吗? :) thx !!!

2 个答案:

答案 0 :(得分:10)

对于utf8_general_ci,它们是相同的(除了ł,这不被MySQL视为错误),并且从5.6开始你也可以使用utf8_unicode_520_ci来正确处理所有波兰语字符。使用utf8_polish_ci将重音和非重音字符视为不同的字符。

select 'abcde'='ąbćdę' COLLATE utf8_polish_ci
>> 0

演示'不是错误'

select 'abcde'='ąbćdę' COLLATE utf8_general_ci
>> 1

select 'abcdel'='ąbćdęł' COLLATE utf8_general_ci
>> 0

请在此处查看错误报告:http://bugs.mysql.com/bug.php?id=9604

答案 1 :(得分:-3)

你可以在MYSQL查询中将Ł替换为L,将ł替换为l,如下所示:

SELECT REPLACE(REPLACE('abcdel', 'Ł', 'L'), 'ł', 'l') = REPLACE(REPLACE('ąbćdęł', 'Ł', 'L'), 'ł', 'l') COLLATE utf8_general_ci
>> 1

从现在起所有的变音字母都等于它们的非变音符号。