![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Tag, ich hab hier ein Problem, bei dem ich nicht weitergekommen bin. Folgendes: Es gibt eine UserTabelle, nennen wir sie einmal members. In der Tabelle befinden sich UserDaten, is klar, unter Anderem die Felder userID, userName und gender (ist int). Nun versuche ich, in einem Query zwei zufällige User auszulesen, die zwei verschidene Geschlechter haben und ein paar bestimmte UserIDs nicht enthalten (wird vom PHPScript bestimmt). MySQL Version ist gegeben, und zwar 4.3. Ich hab bisher sowas versucht, was allerdings in die Hose ging: Code: SELECT DISTINCT gender, userName, userID
FROM users
WHERE (
gender = '1'
OR gender = '2'
) AND
(
userID != IN ('1', '2')
)
GROUP BY gender, userID
ORDER BY RAND( )
LIMIT 2
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #2 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 551
|
ich würde da sowas draus machen: sql Code:
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #3 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Danke schonmal für deine Hilfe, das sieht schon sehr gut aus. Seltsam ist, dass anscheinend das ORDER BY RAND () nicht greift. Sprich es werden immer wieder dieselben Datensätze ausgelesen (immer userID 1 (männlich) und userID 3 (weiblich)). Die anderen Datensätze werden nie selektiert. Weiß jemadn, wieso?
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #5 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
|
Verflixt. Durch dieses GROUP BY gender, RAND() wird nun aber wieder nicht nach Geschlechtern ausgewählt. Es kommt vor, dass zwei männliche und/oder zwei weibliche ausgewählt werden. Code: SELECT gender, userName, userID
FROM users
WHERE gender IN (1, 2)
GROUP BY gender, RAND()
ORDER BY RAND( )
LIMIT 2
__________________ http://www.ChrisDiary.De |
| | |
| | Nach oben #6 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 287
|
Gabs da nichtmal nen Bug mit ORDER BY RAND() ? Hatte ich zumindest vor längerer Zeit mal bei nem Quiz. Da wurden 'zufällig' immer die ersten beiden Datensätze ausgegeben. Also alle User auslesen und Array mischen. |
| | |
| | Nach oben #7 | |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
| Zitat:
Alle User auslesen wäre viel zu resourcenlastig. Dann kann ich ja gleich 2 Queries losschicken - Sinn der Sache ist ja, gezielt meine 2 User in einem Query auszulesen. //edit uff .. Jo ich weiß schon, MySQL Version updaten usw .. Ist aber nicht mein MySQL (bitte keine Kommentare dazu
__________________ http://www.ChrisDiary.De Geändert von Chr!s (13.11.2006 um 08:31 Uhr) | |
| | |
| | Nach oben #9 |
| Christian Mühlroth Registriert seit: 04.09.2005 Ort: Nürnberg
Beiträge: 561
| Ja, genau das ist ja das Problem. Doch die MySQLVersion vom Kunden ist (mal wieder) gestellt (er liegt auf nem shared Server) ...
__________________ http://www.ChrisDiary.De |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Dynamische mySQL Query | la-finest | PHP-Programmierung | 2 | 25.01.2007 16:36 |
| MySQL Fehlermeldung: Your query requires a full tablescan ... | Chr!s | Datenbanken | 12 | 31.07.2006 21:45 |
| MySQL Query wird nicht ausgeführt | Garnele | Datenbanken | 6 | 01.04.2006 03:17 |
| MySQL 5.1 kommt in die Beta-Phase | Ben | Nachrichten | 1 | 02.03.2006 14:31 |
| [SQL] Zufallsdatensatz auslesen - MySQL 3.23 | Ben | Tutorials | 0 | 16.03.2005 00:06 |