Hola. Vereis, tengo una base de datos local MySQL. La tengo codificada en UTF-8, y para acceder a ella utilizo Java, el cual tambien lo tengo configurado para que utilice UTF-8. Utilizo InnoDB.
En principio me escribe y recupera datos de la base de datos correctamente, incluso escribe los carácteres especiales. El problema es que a la hora de comparar detecta algunos carácteres que no son como iguales, normalmente los carácteres con tildes. Por ejemplo, si tengo esta tabla llamada
table1:
Nombre | Edad |
Mânolö
| 20
|
Manolo
| 40
|
Pepe
| 10
|
Si hago:
SELECT * FROM `table1` WHERE (Mânolö LIKE `Nombre`);
me debería devolver unicamente:
Sin embargo, me devuelve esto:
Nombre | Edad |
Mânolö
| 20
|
Manolo
| 40
|
En resumen, a la hora de comparar (por ejemplo con un SELECT) toma por igual carácteres diferentes, por ejemplo
a,á,à,,ä los toma por iguales.
Bueno el problema no son las consultas, sino insertar nuevos datos, ya que si inserto dos filas con clave primaria diferente en esos carácteres me la detecta como duplicado.
Por ejemplo, imaginemos que en la primera tabla la columna
Nombre es la clave primaria. Para insertar una nueva fila
Pepê, 80 sería así:
INSERT INTO `table1` (`Nombre`, `Edad`) VALUES ('Pepê', 80);
Sin embargo me devuelve un error:
ERROR 1062: Duplicate entry 'Pepê' for key 'PRIMARY'
Evidentemente no debería dar este error, ya que la nueva clave primaria es
Pepê y la ya existente es
Pepe.
Buscando por google, encontré que podría ser había que describir el COLLATE de las tablas como
utf8_general_ci,
utf8_unicode_ci o
utf8_bin entre otros muchos. Buscando más información comentaba que las comparaciones se hacían diferentes segundo el COLLATE y hablaba de los acentos, por lo que creía que era esto, establecí todas las tablas y el esquema principal como
utf8_bin, que es la comparación binaria, pero me sigue dando el mismo error.
Bueno dicho esto todo ¿alguien tiene alguna idea como solucionar mi problema?
Saludos ;)
Oye amigo tengo un problema parecido con mi bd, cuando ingreso los registros en la bd se muestran con problemas los acentos y la ñ, pero cuando los importo desde otra bd igual se muestran bien, ¿que crees que sea? ya he intentado de todo con la condenadas Collationes.