Zufällige Ausgabe SQL

Ronald Nickel

Legendäres Mitglied
Hallo
Es geht wieder mal um SQL

Ich möchte beispielsweise einen zufälligen Mitarbeiter aus einer Tabelle dessen Gehalt größer 1000 ist. Wichtig ist mir also aus einem Queryset lediglich einen zufälligen Datensatz zu erhalten.

Ungefär so
select Rand(1) from Member
where gehalt > '1000'

Alle SQL Profies dürfen jetzt einmal herzlich lüber mein Ansatz achen und mir danach des Rätsels Lösung schicken.
biggrin.gif


Gruß Ronny
 
Na das ging ja hurtig. Danke Mar-t!
So wenn ich jetzt noch ein Problem löse ist das WE gerettet.

Jeder Datensatz enthält ein Feld "thema" welches eine Liste beinhaltet.
"1,4,56,4,67" Jede Zahl ist in der Liste einmalig und steht für eine thema-ID was dann wieder in einem "input Select" aufgegeben wird.....

Meine gewünschte Abfrage:
Gibt mir nur einen zufälligen Mitarbeiter aus, der in der kommaseparierten Liste des Datenbankfeldes "Thema" eine "1" zu stehen hat.

Wichtig ist, dass natürlich eine "15" nicht als Eins erkannt wird sondern als Fünfzehn.

Gruß an alle Fleißigen

Ronny


 
Das ist vom Aufbau her nicht sehr optimal. Am besten wäre eine zweite Tabelle in der Du
Mitarbeiter_ID | Thema_ID
aufschlüsselst.

Ansonsten (bei der jetzigen Struktur) ungefähr so:
SELECT * FROM member WHERE gehalt > '1000' AND FIND_IN_SET('56',thema)>0 ORDER BY rand() LIMIT 0,1
Wobei ich nicht weiss ob find_in_set mit Zahlenwerten klar kommt, müsste aber eigentlich.
Je nach Umfang der DB könntest Du statt der ID das Thema aber auch direkt "lesbar" eintragen.

Edit: siehe Doku
 
Zurück
Oben