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

Order by definido por una Constante

Estas en el tema de Order by definido por una Constante en el foro de Mysql en Foros del Web. Hola a todos, tengo una duda, tengo un store procedure para ejecutar un select, y dentro del select hay una funcion order by, lo que ...
  #1 (permalink)  
Antiguo 06/02/2012, 10:41
 
Fecha de Ingreso: enero-2012
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 1
Pregunta Order by definido por una Constante

Hola a todos, tengo una duda, tengo un store procedure para ejecutar un select, y dentro del select hay una funcion order by, lo que queria saber es si puedo enviarle como parametro al procedure la columna por la cual quiero que ordene.

Me ayudarian?
  #2 (permalink)  
Antiguo 06/02/2012, 12:24
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 13 años, 6 meses
Puntos: 42
Respuesta: Order by definido por una Constante

Hola nyahikari,

Quizás un par de ideas te puedan ayudar:

1.- Usando un CASE en el ORDER BY.
2.- Usando sentencias preparadas (SQL dinámico)

Puedes ver un par de ejemplos que preparé en http://www.sqlfiddle.com/#!2/73e63/22

Es posible hacer que "@_orderby" reciba cadenas (strings), pero a nivel de seguridad hay que se cuidadoso sobre todo con las sentencias preparadas.

Última edición por wchiquito; 06/02/2012 a las 12:31
  #3 (permalink)  
Antiguo 06/02/2012, 13:15
 
Fecha de Ingreso: enero-2012
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 1
Exclamación Respuesta: Order by definido por una Constante

MUCHAS GRACIAS!!
Me pase toda la mañana pensando como hacerlo!
Estaba casi al borde de la desesperacion y el suicidio.

Para ser exacta utilize lo del case en el group by ( no sabia que se podia hacer eso), ya que hacer las sentencias separadas era demasiado pesado porq la consulta devuelve mas de 30 campos y la condicion del group by tiene la misma cantidad :D!

Otra vez gracias ;D!

Etiquetas: constante, order-by
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 01:50.