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

Ordenar comenzando por un identificador especifico.

Estas en el tema de Ordenar comenzando por un identificador especifico. en el foro de Mysql en Foros del Web. Que tal, como puedo generar un select con un orden especifico ? Es decir, que me traiga primero los registros que tengan el valor 3 ...
  #1 (permalink)  
Antiguo 13/02/2012, 22:13
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 9 meses
Puntos: 4
Ordenar comenzando por un identificador especifico.

Que tal, como puedo generar un select con un orden especifico ?

Es decir, que me traiga primero los registros que tengan el valor 3 en clausula_id por ej.

Podemos ordenar por el menor ORDER BY clausula_id o por el mayor en adelante ORDER BY clausula_id DESC pero lo que quiero es poder decirle con que valor comenzar el orden.

Es posible ? gracias.
  #2 (permalink)  
Antiguo 14/02/2012, 01:01
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 3 meses
Puntos: 331
Respuesta: Ordenar comenzando por un identificador especifico.

No, no es posible con order by pero puedes hacer subselects o utilizar LIMIT para comenzar a listar en un registro concreto. Saludos,
http://blogs.sakienvirotech.com/inde...-and-searching
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 15/02/2012, 12:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 9 meses
Puntos: 4
Respuesta: Ordenar comenzando por un identificador especifico.

En que parte de los ejemplos deberia mirar ?
  #4 (permalink)  
Antiguo 15/02/2012, 13:32
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 3 meses
Puntos: 331
Respuesta: Ordenar comenzando por un identificador especifico.

No hay un ejemplo concreto para tu caso, tienes que montar la select utilizando subselects. La verdad es que lo veo un poco complejo, más facil sería un store procedure o bien filtrar los resultados por programación. No sé si trabajas con un lenguaje o eres DBA.
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 15/02/2012, 19:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 9 meses
Puntos: 4
Respuesta: Ordenar comenzando por un identificador especifico.

php + mysql, asi que tengo que descartar los store procedure.

El problema es que tengo que mostrar todo, pero empezando con los registros que tengan el valor que quiero en determinado campo.

No se me ocurre la logica para armar una consulta con subselects ...
  #6 (permalink)  
Antiguo 17/02/2012, 10:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Ordenar comenzando por un identificador especifico.

Para eso sí que hay solución
SELECT * FROM tutabla ORDER BY FIELD(tucampo,'3') DESC, tucampo, otrocampo

Mira sobre ORDER BY FIELD

Piensa que los valores que no incluyes en el BY FIELD (en tu caso los otros números) los entenderá como blancos y los ordenará los primeros; de ahí el truco de hacer la primera ordenación descendente.

También lo puedes hacer con una consulta con union all

(SELECT * FROM tutabla WHERE tucampo = 3 ORDER BY otro campo)
UNION ALL
(SELECT * FROM tutabla WHERE tucampo <> 3 ORDER BY tucampo, otro campo)

Etiquetas: identificador, registros, select
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 23:27.