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

Ordenar campo varchar como entero

Estas en el tema de Ordenar campo varchar como entero en el foro de Bases de Datos General en Foros del Web. Hola! Tengo una tabla en MySql llamada filtros, en ella guardo distintos tipos de filtros para un material determinado por ej. Material -- Filtro -- ...
  #1 (permalink)  
Antiguo 25/11/2004, 12:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
Ordenar campo varchar como entero

Hola!

Tengo una tabla en MySql llamada filtros, en ella guardo distintos tipos de filtros para un material determinado por ej.

Material -- Filtro -- Filtro_valor (varchar)
........4......Color.......Amarillo
........4......Color.......Verde
........4......Peso.......145
........4......Peso.......17,6
........4......Peso.......18,3
........4......Peso.......184

El problema:

Hago una consulta para sacar los distintos valores de un filtro para un producto reterminado como esta:

SELECT Filtro_valor
FROM TABLAFILTROS
WHERE Material = 4 AND Filtro = 'Peso'
ORDER BY Filtro_valor

Al ordenarlos la cosa se fastidia, como Filtro_valor es un campo 'varchar' me ordena los números alfabéticamente y no numericamente:

145
17,6
18,3
184

Hay alguna manera de poder odenar la salida de forma numérica en un campo varchar.
__________________
THE MATRIX HAS YOU
  #2 (permalink)  
Antiguo 26/11/2004, 07:40
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Prueba esto:

SELECT Filtro_valor
FROM TABLAFILTROS
WHERE Material = 4 AND Filtro = 'Peso'
ORDER BY cast(Filtro_valor as unsigned)
  #3 (permalink)  
Antiguo 26/11/2004, 09:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 18
Antigüedad: 20 años, 4 meses
Puntos: 0
Muchas gracias funciona a la ferpeccion XD

Desconocía la existencia de la función Cast.
__________________
THE MATRIX HAS YOU
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 05:41.