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

Ordenar registros por campo y rand()

Estas en el tema de Ordenar registros por campo y rand() en el foro de Mysql en Foros del Web. Estoy leyendo que utilizar ORDER BY RAND() es una burrada que se debería evitar pero las soluciones que se proponen la verdad es que no ...
  #1 (permalink)  
Antiguo 22/02/2013, 13:43
Avatar de Neldor  
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 1
Ordenar registros por campo y rand()

Estoy leyendo que utilizar ORDER BY RAND() es una burrada que se debería evitar pero las soluciones que se proponen la verdad es que no se ajustan a mis necesidades, por ello os consulto por si creeis que hay alguna manera más eficiente de solucionarlo, paso a explicar el problema.

Tengo una tabla de este tipo:

Cita:
Nombre Prioridad
AAA 3
BBB 3
CCC 2
DDD 2
EEE 2
FFF 2
GGG 1
...
Lo que yo quiero es sacar los primeros 5 registros ordenados por Prioridad y dentro de estos que sea de forma aleatoria, para que en este caso no siempre me devuelva CCC, DDD y EEE (aunque siempre me devolverá AAA y BBB porque tienen mayor prioridad) si no que dentro de la prioridad 2 me devuelva cualquiera.

Esto es lo que me funciona, pero quiero mejorar:
Código MySQL:
Ver original
  1. SELECT * FROM Tabla ORDER BY Prioridad, RAND() DESC LIMIT 5

Muchas gracias por vuestra atención
  #2 (permalink)  
Antiguo 22/02/2013, 14:19
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 11 meses
Puntos: 42
Respuesta: Ordenar registros por campo y rand()

Hola Neldor,

Te recomiendo leer el siguiente artículo: ORDER BY RAND() (espero no lo hayas leído antes).

Espero te sea útil.

Etiquetas: aleatoria, ordenacion, rand
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 07:27.