大家好,我有问题。
我的数据库端有表名 Members 我不会选择 50% 的女性 结束 50% 的人。
我不知道如何执行查询
SELECT * FROM `members` WHERE gender = 'FEMALE' OR gender = 'MALE'
最佳答案
首先,您需要对行进行排序并按性别创建分区,
类似的东西:
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 个用户(如果您在表中有足够的记录)。
您可以调整顺序来改变顺序,例如添加年龄或其他字段
关于mysql 从 member 表中获取 50%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41423400/