mysql 从 member 表中获取 50%

标签 mysql

大家好,我有问题。

我的数据库端有表名 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/

相关文章:

mysql - 查找具有 0 或 1 个子树的子树中的所有节点

php - 无法更改 DATETIME 格式

mysql - 不止一个 WHERE 条件导致错误 : You have an error in your SQL syntax;

mysql - 在 MySQL 中对日期使用字符串数据类型而不是使用日期时间数据类型是个好主意吗?

php sql语法,获取带有id变量的随机行/包含行

php - 如何在 PHP 中使用 switch case 从 MySQL 获取值

php - pdo 查询选择 2 个日期之间的记录

mysql - 了解一对多或多对多的使用

MySQL 数据库连接查询

mysql - 使用工作台通过 ssh 连接到远程 MySQL 数据库