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

Ordenar resultados mysql por orden alfabetico

Estas en el tema de Ordenar resultados mysql por orden alfabetico en el foro de Bases de Datos General en Foros del Web. Hola a todos. Estoy haciendo una web para un catalogo de obras de un compositor y me han planteado la siguiente pregunta. Hay varios titulos ...
  #1 (permalink)  
Antiguo 19/10/2010, 02:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 84
Antigüedad: 15 años, 4 meses
Puntos: 0
Ordenar resultados mysql por orden alfabetico

Hola a todos.

Estoy haciendo una web para un catalogo de obras de un compositor y me han planteado la siguiente pregunta.

Hay varios titulos que empiezan con exclamacion, interrogante, etc. Lo que me gustaria saber es si es posible ordenar por orden alfabetico sin tener en cuenta esos caracteres por ejemplo...

esto es un titulo 1
¡esto es un titulo 2!
esto es un titulo 3

Por anticipado muchas gracias...
  #2 (permalink)  
Antiguo 19/10/2010, 09:07
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Ordenar resultados mysql por orden alfabetico

Buenos días rafamadrile:

puedes hacerlo más o menos así:

select * from ordenar_temp order by replace(campo, '¡', '');

como mencionas qué puedes tener varios caracteres especiales te recomendaría que la creación de una función que te elimine todos los caracteres no alfanuméricos, de tal manera que tu consulta quede más o menos asi

Código SQL:
Ver original
  1. CREATE FUNCTION `pruebas`.`fn_elimina_caracteres_especiales`
  2. (CAMPO CHAR(50))
  3. RETURNS CHAR(50)    
  4. BEGIN
  5. DECLARE TEMP VARCHAR(50);
  6. SET TEMP = REPLACE(CAMPO, '¿', '');
  7. SET TEMP = REPLACE(TEMP,  '?', '');
  8. SET TEMP = REPLACE(TEMP,  '¡', '');
  9. SET TEMP = REPLACE(TEMP,  '!', '');
  10. --Continuar con todos los caracteres especiales
  11. RETURN TEMP;
  12. END
  13.  
  14. SELECT * FROM ordenar_temp ORDER BY fn_elimina_caracteres_especiales(campo);
Saludos
Leo.

Etiquetas: alfabetico, mysql, orden, resultados
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 09:10.