sulu: RAND() mysql

Hey Ihrs!

hab ne Tabelle mit lauter DATETIME spalten.
wie kann ich das ohne Script machen (also nur mit mysql), dass RAND() nur alle 5 Minuten anders ist?
Hab mir sagen lassen, dass sowas möglich sein soll

  1. Hi!

    hab ne Tabelle mit lauter DATETIME spalten.
    wie kann ich das ohne Script machen (also nur mit mysql), dass RAND() nur alle 5 Minuten anders ist?

    Was möchtest du machen?
    Wie greifst du denn auf deine Datenbank zu?
    Bzw.: Wie wird das DBMS denn alle fünf Minuten angesprochen?

    Es ist ja nicht so, daß die Datenbank alle fünf Minuten einfach einen Wert raushusten würde...

    Lies mal die Tipps für Fragende und dann beschreibe am besten mal, was du genau vor hast.
    Dann wird man dir auch sicherlich schnell sagen können, wie man dein Vorhaben am besten realisiert.

    Schöner Gruß,
    rob

    1. Tach allerseits,
      ich gehe eher davon aus, daß sich sulu nur etwas misverständlich ausgedrückt hat.

      Ich versteh darunter eher, daß ein Satz zufälliger Einträge aus der Tabelle gesucht wird
      und 5min lang bei wiederholtem Aufruf immer die gleichen Einträge angezeigt werden sollen.

      Generell bekommt man einen Satz zufälliger Einträge,
      wenn man zur sql-Abfrage ORDER BY RAND() angibt.
      Die Anzahl der gewünschten Werte dazu mit LIMIT.
      Also z.B. SELECT * FROM table ORDER BY RAND() LIMIT 3;

      RAND ist aber auch nur eine Funktion. - Gibt man ihr nen Basiswert,
      so bekommt man bei gleichem Basiswert stets die gleichen "zufälligen" 3 Zeilen.

      Also braucht man lediglich eine Funktion, die nur alle 5min ihr Ergebnis ändert.

      NOW() = jetzt (einschließlich Sekunden)
      5min = 300sek.
      also:  CEIL(NOW()/300)  <--5min lang das gleiche Ergebnis.

      das schnell oben einbauen:

      SELECT * FROM table ORDER BY RAND(CEIL(NOW()/300)) LIMIT 3

      Diese Abfrage gibt 3 Zufallszeilen aus und verändert erst nach 5min den Ergebnissatz.

      fettich.

      Schönen Gruß!

      Michael

      1. sauber, genau was ich gesucht habe :) Besten Dank für den Tipp mit CEIL,!