Zufällige Datensätze mit unterschiedlichen UserIDs selectieren?

2Pac

Erfahrenes Mitglied
Hallo,

ich möchte gerne aus einer Tabelle von Losen mehrere Datensätze selectieren, diese sollten aber nicht die gleichen UserIDs haben.

Im Prinzip dachte ich mir, ich mache drei SELECT Abfrage die ich ineinander verschachtele. Aber geht das nicht vielleicht auch in einer? Zumal MySQL bei meinem Script != ignoriert.

Kann ich irgendwie mit NOT IN arbeiten?

PHP:
SELECT * FROM lose WHERE userid NOT IN ...

Oder so Ähnlich?

Meine Datenbank sieht wie folgt aus:

lose

id, userid

Ein User kann auch mehrere Lose haben. Aber ich möchte einen Gewinner nur einmal selectieren. Ist das über oben genanntes möglich. Wenn ja wie sähe der Syntax genau aus? Wäre über Hilfe sehr dankbar!

Gruß
Ronny
 
Aus der MySQL-Hilfe:
ORDER BY RAND() in Kombination mit LIMIT ist nützlich zur Auswahl eines Zufallswerts aus einer Datensatzmenge:
ergibt also
SQL:
SELECT *
FROM lose
ORDER BY RAND()
LIMIT 3;
 
Zuletzt bearbeitet von einem Moderator:
Das ist mir auch klar :)

Es geht darum, dass ich Datensätze auswählen möchte, die nicht die selbe userid haben. Sprich ich habe z. B. 20 Datensätze.

Sagen wir:

1. UserID: 1
2. UserID: 2
3. UserID: 3
4. UserID: 4
5. UserID: 5
6. UserID: 2
7. UserID: 2
8. UserID: 3
9. UserID: 6
10. UserID: 7
11. UserID: 2
12. UserID: 3
13. UserID: 1
14. UserID: 5
15. UserID: 9
16. UserID: 10
17. UserID: 5
18. UserID: 3
19. UserID: 2
20. UserID: 7

Manche UserIDs kommen jetzt mehrfach vor. Sortiere ich nur nach ORDER BY RAND () LIMIT 0,3 kann es ja passieren, dass ich theoretisch 3 mal die UserID 2 habe. Das soll nicht sein. Sondern 3 verschiedene UserIDs. Aber ich weiß nicht inwiefern das mit NOT IN realisierbar ist und wie der Syntax aussieht.

Ich glaube du hast mich da missverstanden.

Gruß Ronny
 
Aso, die User sind mehrfach drinne.

Dann schmeiss noch ein DISTINCT mit rein
SQL:
 SELECT DISTINCT userid
FROM lose
ORDER BY RAND( )
LIMIT 3
 
Zuletzt bearbeitet von einem Moderator:
Zurück