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

order by dinamico

Estas en el tema de order by dinamico en el foro de Mysql en Foros del Web. Es posible? Por ejemplo tengo una tabla que contiene articulos los cuales el usuario puede calificar y me gustaría que la consulta muestre los mejores ...
  #1 (permalink)  
Antiguo 01/03/2011, 15:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
order by dinamico

Es posible?

Por ejemplo tengo una tabla que contiene articulos los cuales el usuario puede calificar y me gustaría que la consulta muestre los mejores rankeados, pero he de aqui que la tabla no posee ese valor, sino otros 2 como el total de puntos y el total de votos, por tal deberia dividir uno por el otro para asi obtener la calificacion promedio. Se puede hacer desde el query mismo?
  #2 (permalink)  
Antiguo 01/03/2011, 21:48
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: order by dinamico

Hola.

claro que se puede, prueba con algo como esto para que veas como seria:

Código MySQL:
Ver original
  1. select id,rand() as orden from tabla order by orden

Solo ajustalo a lo que necesitas.

Suerte.
  #3 (permalink)  
Antiguo 02/03/2011, 06:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: order by dinamico

Hola y gracias por responder pero creo que no es lo que busco, tal vez no me explique lo suficientemente bien.
Yo lo que necesito es hacer un ORDER BY según un valor que no está almacenado como tal, pero que puedo obtenerlo dividiendo 2 valores que si lo están, por eso preguntaba si puedo hacer esa operación desde la consulta misma.
  #4 (permalink)  
Antiguo 02/03/2011, 06:25
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: order by dinamico

Si lo puedes hacer. Me da que no lo has probado antes de postear, jajajaja

Si no pudieras, a las malas, creas una columna en ejecución que sea el valor que quieres y ordenas por esa columna.
  #5 (permalink)  
Antiguo 02/03/2011, 07:02
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: order by dinamico

Es que no tengo idea como hacerlo por eso estoy preguntando.

Lo unico que probe fue esto y no funciono

Código SQL:
Ver original
  1. SELECT * FROM TABLE ORDER BY field1/field2 DESC
  #6 (permalink)  
Antiguo 02/03/2011, 07:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: order by dinamico

Posiblemente porque los parámetros de ORDER BY deben ser nombres de campos de la tabla, alias de columnas, funciones como RAND() o valores enteros que representan las columnas.
Podría ser:
Código MySQL:
Ver original
  1. SELECT t.*, (campo1/campo2) calif
  2. FROM TABLA t
o bien.
Código MySQL:
Ver original
  1. FROM TABLA t
  2. ORDER BY (campo1/campo2)  DESC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 02/03/2011, 07:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: order by dinamico

Ok parece que era valido lo que habia hecho, tenia un typo en el nombre de un campo.
Gracias a todos.

Etiquetas: dinamico, order
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 13:44.