Ver Mensaje Individual
  #11 (permalink)  
Antiguo 24/11/2013, 03:21
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Seleccionar 2 campos al azar con diferente usuario

Creo que tu consulta es buena y te diré por qué:
Código MySQL:
Ver original
  1. SELECT t1.usuario,
  2. t1.id_foto,
  3. t1.nombre_foto
  4.    FROM
  5.           (SELECT
  6.              id_foto,
  7.              usuario,
  8.              nombre_foto
  9.                     FROM fotos
  10.                         ORDER BY RAND())t1
  11.     GROUP BY t1.usuario  ORDER BY RAND()
  12.     LIMIT 2

La mía primero ordena al azar y luego agrupa y limita a 2. Los elementos que se repiten tienen más probabilidades de aparecer antes (si hay dos, puede que uno aparezca después, pero hay menos posibilidades de que aparezcan los dos, y, como el agrupado deja el primero que aparece, el LIMIT lo recoge en mayor número de ocasiones un elemento repetido. La tuya primero ordena al azar, luego agrupa (de esa manera los que se repiten también tiene las mismas posibilidades, aunque solo queda uno), luego vuelves a ordenar al azar y finalmente haces el limit. Sí creo que es buena para lo que es el ORDER BY RAND() de MySQL.

Última edición por jurena; 24/11/2013 a las 03:37