Usa un seme per il generatore di numeri casuali in base alla data corrente:
ORDER BY RAND(20120714) LIMIT 1
Sono anche curioso di sapere cosa intendi per "altro" qui:
Se vuoi selezionare un diverso citazione casuale ogni giorno, quindi non dovresti usare un semplice ORDER BY RAND(seed)
. Questo potrebbe restituire la stessa citazione per tre giorni di seguito.
Se vuoi evitare che ciò accada, puoi invece memorizzare quale preventivo è selezionato per ogni giorno e scegliere un preventivo casuale tra quelli che non sono stati utilizzati negli ultimi n giorni. Naturalmente, se stai memorizzando quando un preventivo è stato utilizzato l'ultima volta, c'è anche una soluzione naturale al tuo problema originale:
- Cerca una citazione utilizzata l'ultima volta oggi.
- Se ce n'è una, quella è la citazione del giorno.
- In caso contrario, seleziona una nuova quotazione del giorno dalle righe che non sono state utilizzate negli ultimi n giorni e aggiorna la riga per mostrare che è la quotazione del giorno per oggi.
OK, che ne dici di un approccio leggermente diverso:
ORDER BY RAND(201207) LIMIT 14, 1
-- yyyymm dd
Ora non hai bisogno di una colonna in più e non otterrai ripetizioni, tranne forse quando cambia il mese. Questa soluzione presuppone che tu abbia almeno 32 virgolette tra cui scegliere.