Seite 1 von 1

Zufällige Elemente "Selecten"

Verfasst: Montag 23. April 2007, 18:35
von sprudel
Hallo.

Kann ich bei einem Select-Befehl irgendwas ähnliches wie zb. ORDER BY RAND() machen? Ich möchte die Einträge also in zufälliger Reihenfolge bekommen.

Geht das irgendwie?

Gruß sprudel

Verfasst: Montag 23. April 2007, 18:42
von BlackJack
Wenn die Datenbank so etwas wie eine `random()`-Funktion kennt, könntest Du folgendes probieren:

Code: Alles auswählen

SELECT foo, bar, baz, RANDOM() as rnd
FROM tabelle
WHERE bedingung
ORDER BY rnd;
Sauber oder portabel ist das wahrscheinlich nicht. :-)

Verfasst: Montag 23. April 2007, 21:28
von Y0Gi
Wenn du ohnehin alle Einträge beziehst, kannst du die auch in Python durcheinander würfeln, damit bist du bzgl. der Datenbank unabhängiger. Ich meine mich zu erinnern, dass es da keinen allgemeinen Weg über SQL gibt.

Verfasst: Montag 23. April 2007, 22:18
von sprudel
Also ich verwende SQLite.

Wie kann ich die den in Python durcheinanderwürfeln?

Verfasst: Montag 23. April 2007, 22:40
von gerold
sprudel hat geschrieben:Also ich verwende SQLite.
Hi sprudel!

Dann sollte diese SQL-Anweisung funktionieren:

Code: Alles auswählen

SELECT 
    foo, bar, baz
FROM 
    tabelle
ORDER BY 
    RANDOM()
mfg
Gerold
:-)

Verfasst: Montag 23. April 2007, 22:49
von sprudel
Hi gerold. Vielen Vielen Dank, das war genau das was ich gesucht hab :-) Jetzt funktioniert alles einwandfrei. Danke

Verfasst: Dienstag 24. April 2007, 11:24
von Y0Gi
sprudel hat geschrieben:Also ich verwende SQLite.

Wie kann ich die den in Python durcheinanderwürfeln?
`random.shuffle()` vertauscht eine Liste zufällig.