He notado un problema con los caracteres "no ingleses" (polaco) que usan MySQL.Palabras de MySQL y polaco
consulta "select 'ABCDE' = 'ABCDE'" devuelve "1" y las cadenas no son iguales ...
podría ayudarme? :) ¡¡¡Gracias!!!
He notado un problema con los caracteres "no ingleses" (polaco) que usan MySQL.Palabras de MySQL y polaco
consulta "select 'ABCDE' = 'ABCDE'" devuelve "1" y las cadenas no son iguales ...
podría ayudarme? :) ¡¡¡Gracias!!!
Para utf8_general_ci son iguales (a excepción de ³, que no se considera un error de MySQL), y desde 5.6 también se puede usar utf8_unicode_520_ci que maneja correctamente todos los caracteres polacos. Utilice utf8_polish_ci para tratar los caracteres acentuados y sin acentos como diferentes.
select 'abcde'='ąbćdę' COLLATE utf8_polish_ci
>> 0
demostración de 'no es un error'
select 'abcde'='ąbćdę' COLLATE utf8_general_ci
>> 1
select 'abcdel'='ąbćdęł' COLLATE utf8_general_ci
>> 0
Ver el informe de error aquí: http://bugs.mysql.com/bug.php?id=9604
Puede reemplazar L para L y L a l en consulta MySQL, así:
SELECT REPLACE(REPLACE('abcdel', 'Ł', 'L'), 'ł', 'l') = REPLACE(REPLACE('ąbćdęł', 'Ł', 'L'), 'ł', 'l') COLLATE utf8_general_ci
>> 1
y desde ahora todas las letras diacríticas son equivalentes a sus equivalentes no diacríticos.
Vale la pena señalar que en MySQL 5.6 puede usar la "utf8_unicode_520_ci" colllation que maneja el ł caso de la misma manera que utf8_general_ci lo hace con otros caracteres polacos. – kars7e
Gracias @bigfun. Agregó esta información a la respuesta – Mchl