mysql从成员表中获得50%

时间:2017-01-02 08:21:38

标签: mysql

大家好,我有疑问。

我的数据库端有表名成员 我不会选择50%的女性 结束50%的人。

我不知道如何执行查询

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

2 个答案:

答案 0 :(得分:0)

这将为您提供20条记录,同样是男性和女性

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

答案 1 :(得分: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个用户(如果表中有足够的记录)。

您可以使用订单更改订单,例如添加年龄或其他字段