2017-01-02 3 views
1

Hallo allerseits ich habe Frage.mysql erhalten 50 Prozent von Mitglied Tabelle

Ich habe Tabellennamen Mitglieder auf meiner Datenbank Ende i 50 Prozent Frauen Ende 50 Prozent Mann wählen würden nicht.

Ich weiß nicht, wie die Abfrage auszuführen

SELECT * FROM `members` WHERE gender = 'FEMALE' OR gender = 'MALE' 
+0

Siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve -für-was-scheint-mir-eine-sehr-einfach-sql-abfrage – Strawberry

Antwort

0

Zuerst müssen Sie Ihre Reihen ordnen und nach Geschlecht Partition erstellen ,

so ähnlich:

SELECT @row_num := IF(@prev_value=GENDER,@row_num+1,1) AS RowNumber 
     user_id, 
     Gender, 
     @prev_value := GENDER 
    FROM Person, 
     (SELECT @row_num := 1) x, 
     (SELECT @prev_value := '') y 
    ORDER BY Gender,user_id 

und als Sie die Anzahl der Benutzer ziehen können Sie zum Beispiel benötigen, wenn Sie benötigen 100 Benutzer können Sie laufen, wenn RowNumber < = 50,

Sie 50 Benutzer von jedem Geschlecht bekommen (wenn Sie genügend Datensätze in der haben Tabelle).

Sie können mit dem Auftrag spielen, um die Bestellung zu ändern, zum Beispiel Alter oder andere Felder hinzufügen

0

Dadurch werden Sie 20 Datensätze erhalten, ebenso männliche und weibliche

(SELECT * FROM members WHERE gender = 'FEMALE' limit 10) 
union all 
(SELECT * FROM members WHERE gender = 'MALE' limit 10) 
+0

... vorausgesetzt, es gibt eine ausreichende Anzahl beider Geschlechter – Strawberry

Verwandte Themen