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

ORDER BY ASC en letras como ö ü etc.

Estas en el tema de ORDER BY ASC en letras como ö ü etc. en el foro de Mysql en Foros del Web. Hola a todos... Me surge este inconveniente al pedir el ordenamiento de una consulta que no se como solucionarlo: Hago mi consulta así: Código: FROM ...
  #1 (permalink)  
Antiguo 23/01/2009, 12:43
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
ORDER BY ASC en letras como ö ü etc.

Hola a todos...

Me surge este inconveniente al pedir el ordenamiento de una consulta que no se como solucionarlo:

Hago mi consulta así:

Código:
FROM tabla ORDER BY apellido,nombre ASC";
Me muestra todos los resultados bien, pero cuando se presentan apellidos como por ejemplo: Göti, Böl, Ünder, etc.
me los ubica al final de cada letra y no en orden alfabético.

Evidentemente toma las letras ö. ü y otras variantes de forma diferente.

Por favor, alguien me puede ayudar?

Saludos.-
  #2 (permalink)  
Antiguo 25/01/2009, 02:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ORDER BY ASC en letras como ö ü etc.

Eso es porque estás usando en tu base para ese campo un cotejamiento o collation que ordena en esa posición. Cambia el cotejamiento o collation de ese campo a otro. Si por eje. tu charset o codificación es latin1, cambia la collation de ese campo donde están los apallidos a latin1_general_ci y luego prueba. Si es utf8, cambia a la collation utf8_general_ci, y luego ordena. Me parece que estás usando una collation del tipo latin1_swedish_ci, o algo así.
  #3 (permalink)  
Antiguo 25/01/2009, 10:16
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: ORDER BY ASC en letras como ö ü etc.

jurena, efectivamente estoy usando una collation latin1_swedish_ci pero después de leer un poco sobre el tema y poder que hacer lo que me aconsejas... está el problema de que la versión MySQL 3.x que tiene mi Servidor no acepta esos cambios.

Ya estamos encaminados en la resolución del problema de la versión MySQL migrando la BD a una versión 5.x

Por otro lado, también se puede cambiar la collation con la Sentencia "COLLATE latin1_german1_ci" como indica el Manual MySQL de la version 5.x que se puede ver en http://dev.mysql.com/doc/refman/5.0/...t-collate.html

Saludos.-
  #4 (permalink)  
Antiguo 26/01/2009, 01:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ORDER BY ASC en letras como ö ü etc.

paulkees,
Tu servidor, si por ej. entras en el PHPMyAdmin del servidor y cambias la collation de ese campo en concreto de tu base, una vez seleccionado, no creo que ponga problemas.
  #5 (permalink)  
Antiguo 26/01/2009, 10:12
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: ORDER BY ASC en letras como ö ü etc.

Si jurena, pero mi servidor tiene la versión phpMyAdmin - 2.11.9.2 por lo tanto no es posible acceder a esa posibilidad para cambiar la "Collation".
  #6 (permalink)  
Antiguo 26/01/2009, 15:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ORDER BY ASC en letras como ö ü etc.

pues entonces usa esto para ordenar:
... ORDER BY replace(replace(replace(replace(nombrecampo,'ö','o '),'ü','u'),'Ö','O'),'Ü','U')

Naturalmente, podrás añadir tantos replace como vocales acentuadas te causen problema.
  #7 (permalink)  
Antiguo 28/01/2009, 11:38
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: ORDER BY ASC en letras como ö ü etc.

Hola jurena...

Esa forma de ordenamiento no la conocía. No la he probado por que ya migre la BD a MySQL 5 y todo va bien. De todas formas la tendré en cuenta para futuras situaciones.

Además uno aprende, por que tanto con el asunto de la migración, como éste ordenamiento que me dices... era todo nuevo para mi, así que gracias por las enseñanzas jurena!!!

Saludos
  #8 (permalink)  
Antiguo 28/01/2009, 16:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ORDER BY ASC en letras como ö ü etc.

De nada. Me alegro de que todo esté solucionado. Lo que yo te he propuesto al final era una solución de compromiso. Se trata de replace anidados. Imagina que tienes palabras con signos como paréntesis, corchetes, barras, etc. y quieres mostrarlas tal cual, pero ordenarlas sin que se tengan en cuenta esos signos; en esos casos yo uso este truquillo.
Suerte.
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 10:56.