Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

LIKE "%ñ%" , me saca resultados con "n"

Estas en el tema de LIKE "%ñ%" , me saca resultados con "n" en el foro de Mysql en Foros del Web. Hola, después de buscar bastante y probar cosas como cambiar la codificación de caracteres a utf8, latin1_swedish_ci, probar con funciones tipo urlencode, decode, etc... sigo ...
  #1 (permalink)  
Antiguo 10/02/2007, 05:37
Avatar de Pablo Castrillo  
Fecha de Ingreso: agosto-2005
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
LIKE "%ñ%" , me saca resultados con "n"

Hola, después de buscar bastante y probar cosas como cambiar la codificación de caracteres a utf8, latin1_swedish_ci, probar con funciones tipo urlencode, decode, etc... sigo sin saber cómo hacer esto.

Estoy empezando con phpmyadmin, y me gustaría saber cómo hacer una consulta que me devuelva todas las palabras con eñe, acentos, etc.

Primero pruebo esto para la eñe, pero de ahí no paso, me devuelve valores con "n" en vez de "ñ".

Código:
SELECT * FROM tabla_pruebas WHERE titulo LIKE "%ñ%"
¿Alguna sugerencia?



Saludos y gracias.
  #2 (permalink)  
Antiguo 10/02/2007, 08:12
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Re: LIKE "%ñ%" , me saca resultados con "n"

Todas las operaciones con comparaciones de caracteres, tienen que ver con el collations que estes usando, si quieres que diferencien n de ñ , debes hacer uso de cualquiera de estos collations: utf8_spanish_ci y utf8_spanish2_ci, aqui te dejo un trozo del manual de mysql que habla del asunto:
Código:
Las colaciones utf8_spanish_ci y utf8_spanish2_ci se corresponden con español moderno y español tradicional respectivamente. En ambas colaciones , 'ñ' es una letra independiente, entre 'n' y 'o'. Además, para español tradicional 'ch' es una letra, ordenada entre 'c' y d, y 'll' es una letra que se coloca entre 'l' y 'm'
al momento de ejecutar tus consultas puedes hacer uso directo de estas colaciones:
Código PHP:
mysqlSELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci;
+-----------------------------------------+
'ä' LIKE 'ae' COLLATE latin1_german2_ci |
+-----------------------------------------+
|                                       
|
+-----------------------------------------+
mysqlSELECT 'ä' 'ae' COLLATE latin1_german2_ci;
+--------------------------------------+
'ä' 'ae' COLLATE latin1_german2_ci |
+--------------------------------------+
|                                    
|
+--------------------------------------+ 
otro aspecto a tomar en cuenta es que tienes que tener tambien un juego de caracteres compatible con la colacion, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 10/02/2007, 08:55
Avatar de Pablo Castrillo  
Fecha de Ingreso: agosto-2005
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: LIKE "%ñ%" , me saca resultados con "n"

Hola deadlykio,
muchas gracias por tu respuesta. Efectivamente esa ha sido la solución. He cambiado la codificacion a latin1_spanish_ci y me ha funcionado perfectamente.

Otra pequeña duda. Al cambiar la codificación de caracteres he tenido que eliminar la clave única porque si no me decía que había valores duplicados.

¿Cómo podría vover a ponerla? existe algo para eliminar registros repetidos?

Saludos!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.