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

Ordenamiento especial mysql

Estas en el tema de Ordenamiento especial mysql en el foro de Mysql en Foros del Web. Buenas tardes compañeros del foro lo que quiero hacer es lo siguiente dado en nombre un campo llamado "idcatalogo" de una tabla llamada "partida" en ...
  #1 (permalink)  
Antiguo 27/02/2012, 16:25
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Ordenamiento especial mysql

Buenas tardes compañeros del foro lo que quiero hacer es lo siguiente dado en nombre un campo llamado "idcatalogo" de una tabla llamada "partida" en mysql necesito que me ordene este campo en forma ascendente el problema es que la estructura de la cadena del campo es asi
"1"
"1-1-11"
"1-2"
"1-2-11"
"1-11"
"1-1-9"
"1-2-9"
y necesito que al ordenarla la ordene asi:
"1"
"1-1-9"
"1-1-11"
"1-11"
"1-2"
"1-2-9"
"1-2-11"
Por orden numerico pero tomando en cuenta la cantidad antes del "-"

lo que intente y no me funciono es
"select * from partida order by idcatalogo asc"
  #2 (permalink)  
Antiguo 27/02/2012, 16:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ordenamiento especial mysql

Si como máximo tienes dos guiones, puedes usar esto:
Código MySQL:
Ver original
  1. SELECT campo
  2. FROM  tutabla
  3. ORDER BY CAST( SUBSTRING_INDEX( campo, '-', 1 ) AS UNSIGNED ) ,
  4.   CAST( SUBSTRING( SUBSTRING_INDEX(campo, '-', 2 ) , '-' , -1 ) AS UNSIGNED ) ,
  5.   CAST( SUBSTRING_INDEX( campo, '-', -1 ) AS UNSIGNED )

Etiquetas: programacion
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:56.