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

problemilla al ordenar los registros

Estas en el tema de problemilla al ordenar los registros en el foro de Mysql en Foros del Web. hola a todos tengo una consulta que ha de sacar varios productos de la base de datos, segun su referencia: "SELECT * FROM producto WHERE ...
  #1 (permalink)  
Antiguo 29/06/2011, 15:30
 
Fecha de Ingreso: enero-2011
Mensajes: 34
Antigüedad: 13 años, 2 meses
Puntos: 0
problemilla al ordenar los registros

hola a todos tengo una consulta que ha de sacar varios productos de la base de datos, segun su referencia:

"SELECT * FROM producto WHERE referencia = '47625-99' OR referencia = '47617-45' OR referencia = '47617-75' OR referencia = '43767-35' OR referencia = '432615-55' OR referencia = '432837-55' OR referencia = '81315-55' OR referencia = '81289-10' OR referencia = '81258-70'";

lo que quiero es que valla presentando los registros en el mismo orden que los he escrito en la sentencia sql. el problema es que (creo) al no especificar ningun metodo de ordenarlos (order by), me los va presentando ordenandolos segun su codigo de producto.

no se si me he explicado bien, ni si se puede hacer esto que digo. haber si alguien puede ayudarme. saludos.
  #2 (permalink)  
Antiguo 30/06/2011, 01:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: problemilla al ordenar los registros

Si te has explicado bien pero no lo podras hacer....

SELECT * FROM producto WHERE referencia IN ('47625-99','47617-45','47617-75','43767-35','432615-55','432837-55','81315-55','81289-10','81258-70')

así es mas elegante pero sigue teniendo el mismo problema....

Solo un condicional muy complicado te serviria

if(referencia='47625-99',1,if(referencia='47617-45',2,if(referencia='47617-75',3,if(....))))

y ordenar por su resultado....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 30/06/2011, 03:09
 
Fecha de Ingreso: enero-2011
Mensajes: 34
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problemilla al ordenar los registros

Cita:
Iniciado por quimfv Ver Mensaje
SELECT * FROM producto WHERE referencia IN ('47625-99','47617-45','47617-75','43767-35','432615-55','432837-55','81315-55','81289-10','81258-70')
gracias, esta forma esta mejor. tomo nota.

en cuanto a lo otro ya lo he resuelto, ordenandolo segun el identificador de cada producto:

ORDER BY id_producto=52, id_producto=59, id_producto=55, id_producto=414, id_producto=101, id_producto=97, id_producto=349, id_producto=41, id_producto=39, id_producto=8, id_producto=4, id_producto=2"

NOTA: lo raro es que van saliendo al reves de como los voy poniendo en el 'order by', o sea van saliendo empezando desde el ultimo al primero: 2, 4, 8, 39, 41...pero en fin, me funciona a la perfeccion (solo hay que cambiar el orden como se quiere que vallan apareciendo)

saludos

Última edición por peta555; 30/06/2011 a las 03:18

Etiquetas: registros
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 21:24.