Zufällige Elemente "Selecten"

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Zufällige Elemente "Selecten"

Beitragvon sprudel » Montag 23. April 2007, 18:35

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
BlackJack

Beitragvon BlackJack » Montag 23. April 2007, 18:42

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. :-)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Montag 23. April 2007, 21:28

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.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Montag 23. April 2007, 22:18

Also ich verwende SQLite.

Wie kann ich die den in Python durcheinanderwürfeln?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Montag 23. April 2007, 22:40

sprudel hat geschrieben:Also ich verwende SQLite.

Hi sprudel!

Dann sollte diese SQL-Anweisung funktionieren:
[code=]SELECT
foo, bar, baz
FROM
tabelle
ORDER BY
RANDOM()[/code]
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Montag 23. April 2007, 22:49

Hi gerold. Vielen Vielen Dank, das war genau das was ich gesucht hab :-) Jetzt funktioniert alles einwandfrei. Danke
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Dienstag 24. April 2007, 11:24

sprudel hat geschrieben:Also ich verwende SQLite.

Wie kann ich die den in Python durcheinanderwürfeln?

`random.shuffle()` vertauscht eine Liste zufällig.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder