Use uma semente para o gerador de números aleatórios com base na data atual:
ORDER BY RAND(20120714) LIMIT 1
Também estou curioso sobre o que você quis dizer com "outro" aqui:
Se você quiser selecionar um diferente citação aleatória todos os dias, então você não deve usar um simples
ORDER BY RAND(seed)
. Isso pode retornar a mesma cotação três dias seguidos. Se você quiser evitar que isso aconteça, você pode armazenar qual cotação é selecionada para cada dia e escolher uma cotação aleatória daquelas que não foram usadas nos últimos n dias. Claro, se você estiver armazenando quando uma cotação foi usada pela última vez, também há uma solução natural para seu problema original:
- Procure uma cotação que foi usada pela última vez hoje.
- Se houver uma, essa é a citação do dia.
- Caso contrário, selecione uma nova cotação do dia nas linhas que não foram usadas nos últimos n dias e atualize a linha para mostrar que é a cotação do dia para hoje.
OK, que tal uma abordagem um pouco diferente:
ORDER BY RAND(201207) LIMIT 14, 1
-- yyyymm dd
Agora você não precisa de uma coluna extra e não terá repetições, exceto talvez quando o mês mudar. Esta solução pressupõe que você tenha pelo menos 32 cotações para escolher.