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

Problema con caracter º

Estas en el tema de Problema con caracter º en el foro de Mysql en Foros del Web. Hola, tengo el siguiente problema, al realizar una consulta de este tipo: SELECT cadena FROM tabla where cadena like '%º%' Donde la cadena tenga el ...
  #1 (permalink)  
Antiguo 04/07/2010, 19:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 2
Problema con caracter º

Hola, tengo el siguiente problema, al realizar una consulta de este tipo:

SELECT cadena
FROM tabla
where cadena like '%º%'

Donde la cadena tenga el caracter º, me devuelve tambien resultados con el caracter o (uno es el simbolo de la apreviacion de primero y otro la vocal o), como tengo que hacer para obtener solamente las cadenas con "º"?. (supongo que lo mismo pasa con ª y a).

La tabla esta creada con CHARSET=utf8 COLLATE=utf8_spanish_ci.

Gracias por su ayuda.
Saludos
  #2 (permalink)  
Antiguo 05/07/2010, 06:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Problema con caracter º

PUedes hacerlo al vuelo, es decir, en la consulta
Código MySQL:
Ver original
  1. SELECT cadena
  2. FROM tabla
  3. where cadena like '%º%' COLLATE utf8_bin;

o cambiando la collation del campo a utf8_bin;, aunque esto te obligará a hacer todas las consultas en utf8_bin, y se distinguirán tildes, mayúsculas, etc.
  #3 (permalink)  
Antiguo 05/07/2010, 12:36
 
Fecha de Ingreso: septiembre-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema con caracter º

Gracias por la ayuda, las consultas las solucione de la manera que mencionas.

Ahora el problema surge al insertar:

insert into tabla(id_pais, id_prov, cadena) values(".$id_pais.", ".$id_prov.", '".$ape."');

Siendo la cadena clave, si en la tabla ya figura por ejemplo aºxc y quiero insertar aoxc da clave duplicada y no lo permite (obviamente).

Que debe agregar al insert para que tenga en cuenta que son distintas cadenas?
Saludos.
  #4 (permalink)  
Antiguo 05/07/2010, 13:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Problema con caracter º

No es el insert. Debes cambiar la collation de ese campo clave a una collation utf8_bin, aunque debes hacer copias de seguridad antes de hacer nada, pues eso afectará, creo, a los índices. Si no cambias la collation, entenderá que hay una coincidencia en el campo clave, algo que no permitirá. Si cambias la collation del campo en el que buscas, ya no necesitarás cambiar la collation al vuelo, como yo te había sugerido.
  #5 (permalink)  
Antiguo 05/07/2010, 13:47
 
Fecha de Ingreso: septiembre-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema con caracter º

Me imaginaba algo asi pero por las dudas queria confirmarlo. Muchas gracias !

Etiquetas: especiales, caracteres
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 20:01.