2017-01-02 50 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