大家好,我有疑问。
我的数据库端有表名成员 我不会选择50%的女性 结束50%的人。
我不知道如何执行查询
SELECT * FROM `members` WHERE gender = 'FEMALE' OR gender = 'MALE'
答案 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个用户(如果表中有足够的记录)。
您可以使用订单更改订单,例如添加年龄或其他字段