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

Ordenar datos descendentemente en mysql, pero algo mas especial

Estas en el tema de Ordenar datos descendentemente en mysql, pero algo mas especial en el foro de Mysql en Foros del Web. Hola, tengo un problema... miren... necesito ordenar los datos de mi consulta haci... I, II,III, IV, V, VI, VII, VIII, IX, X pero al hacer ...
  #1 (permalink)  
Antiguo 23/10/2008, 11:52
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
Pregunta Ordenar datos descendentemente en mysql, pero algo mas especial

Hola, tengo un problema... miren...

necesito ordenar los datos de mi consulta haci...

I, II,III, IV, V, VI, VII, VIII, IX, X

pero al hacer un select * from niveles me sale haci:

I, II,III, IV, IX, V, VI, VII, VIII, X

como ven IX no deberia estar ahi...

como haria para que se ordene como deseo...

ojo: no puedo tocar ni modificar la tabla niveles...


Gracias por la ayuda
  #2 (permalink)  
Antiguo 23/10/2008, 14:31
 
Fecha de Ingreso: junio-2008
Mensajes: 16
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Ordenar datos descendentemente en mysql, pero algo mas especial

Buenas,
desconozco si existe alguna función en MySql para convertir números romanos en enteros, así pues sólo se me ocurre que crees un stored procedure para tal proceso. Un stored procedure te permitiría crear una tabla temporal llamémosla niveles2, que contenga los mismos datos que niveles pero con los números romanos convertidos en enteros (el proceso de transformación es un algoritmo en MySql que deberías implementar dentro del procedure). Luego simplemente llama con un CALL al stored procedure para que ejecute las acciones que deseas.
Si pudieras utilizar código en PHP para esta operación sería bastante sencillo, porque convertir números romanos a enteros se puede hacer bastante fácil, pero en MySql tendría que investigar un poco más para darte un algoritmo para realizarlo.
  #3 (permalink)  
Antiguo 23/10/2008, 15:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ordenar datos descendentemente en mysql, pero algo mas especial

Intenta ordenar así (he llamado al campo donde tienes los números romanos 'nivel'):

SELECT * FROM niveles ORDER BY REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE ( nivel, 'CM', 'ZZZZ' ) , 'M', 'ZZZZZ' ) , 'CD', 'YYYY' ) , 'D', 'YYYYY' ) , 'XC', 'XXXXXXXXX' ) , 'C', 'XXXXXXXXXX' ) , 'XL', 'XXXX' ) , 'L', 'XXXXX' ) , 'IX', 'VIIII' ) , 'X', 'VIIIII' )

Esto es el resultado de un experimento mío que puedes leer en este post:
http://www.forosdelweb.com/f86/orden...-mysql-634535/
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 18:51.