Ver Mensaje Individual
  #19 (permalink)  
Antiguo 17/02/2014, 06:24
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: recoger 2 registros diarios aleatoriamente

Cita:
Iniciado por akrogonac Ver Mensaje
creo el sp en vez del evento?

pero entonces como hago que se cargue 1 vez al dia?

Siento mi ignorancia. Gracias por tu tiempo
No exactamente. En el EVENT llamas al SP.

En cuanto al tema de la repitencia, ¿cuál es exactamente el problema de que se repita dos veces el mismo usuario?
Si el tema es que no se repita dos días seguidos, simplemente mantienes un registro de los que se seleccionaron, junto con la fecha de selección y lo pones como parte del filtro.
Es decir, que no sólo filtre por nombre, sino que además lo haga descartando aquellos que hayan sido seleccionados en los X días anteriores al presente.
Algo como:

Código SQL:
Ver original
  1. DELIMITER $$
  2. CREATE PROCEDURE sorteo
  3. BEGIN
  4.     CREATE TEMPORARY TABLE usersorteo
  5.     AS
  6.     SELECT nombre, CURDATE() fechaPub
  7.     FROM usuarios
  8.     WHERE `user`NOT IN (SELECT `user` FROM aleatorio WHERE fechaPub >= DATE_SUB(CURDATE, INTERVAL 7 DAY))
  9.     ORDER BY rand() LIMIT 2;
  10.  
  11.     INSERT INTO aleatorio(`user`, fechaPub
  12.     SELECT *
  13.     FROM usersorteo;
  14.  
  15.     SELECT *
  16.     FROM usersorteo;
  17. END$$
Eso haría que se repitan aquellos que se publicaron hace más de una semana.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)