2017-01-02 49 views
1

大家好,我有問題。mysql從會員表中獲得50%

我有表名成員我的數據庫結束 我不會選擇50層%的女性 年底50%的人。

我不知道如何執行查詢

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

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve - 對於什麼似乎對我來說是一個非常簡單的SQL查詢 – Strawberry

回答

0

首先,你需要排名您行和性別創建分區,

類似的東西:

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 

,比你可以拉你需要的用戶數,例如,如果你需要100個用戶,你可以在運行時ROWNUMBER < = 50,

你會得到每個性別50名的用戶(如果你有足夠的記錄表)。

您可以用爲了改變順序播放,例如添加年齡或其他領域

0

這將讓你的20條記錄,同樣男性和女性

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

...假設有足夠數量的兩個性別 – Strawberry