Mysql 获取Wordpress数据库中具有特定usermeta值的用户数

Mysql 获取Wordpress数据库中具有特定usermeta值的用户数,mysql,sql,wordpress,Mysql,Sql,Wordpress,Wordpress数据库结构如下所示: wp\u用户(ID、用户注册等) wp_usermeta(用户id、元密钥、元值等) wp\u users.ID对应于wp\u usermeta.user\u ID 我想选择按日期(wp_users.user_registered)分组的所有用户的计数,并选择与meta key'sex'对应的meta值,即1或2。然后,结果应该由两列和具有唯一日期的行组成。第一列应该是具有元值1的用户数的计数,第二列应该是具有元值2的用户数的计数 我对特定于WP的构造

Wordpress数据库结构如下所示:

  • wp\u用户(ID、用户注册等)
  • wp_usermeta(用户id、元密钥、元值等)
wp\u users.ID
对应于
wp\u usermeta.user\u ID

我想选择按日期(wp_users.user_registered)分组的所有用户的计数,并选择与meta key
'sex'
对应的meta值,即1或2。然后,结果应该由两列和具有唯一日期的行组成。第一列应该是具有元值1的用户数的计数,第二列应该是具有元值2的用户数的计数

我对特定于WP的构造不感兴趣,我想通过一个SQL查询来实现这一点

如果足够好的话,我会发布我的尝试,不幸的是我没有那么好的。非常感谢您的帮助。

尝试一下:

select sum(um.meta_value = '1') Sex1, sum(um.meta_value = '2') Sex2
from wp_usermeta um
join wp_users u on u.id = um.user_id
where um.meta_key = 'sex'
group by date(u.user_registered)
你说:

然后,结果应该由两列和具有唯一日期的行组成


问题是你不知道每行所指的日期。您可以将
日期(u.user\u registered)
添加到
选择
语句中,以查看它。

我无法执行此操作。关于添加日期(u.user_注册),您是对的,我需要它。日期看起来不错,但其他两列都为零,所有行的日期都为零。我对um.meta_key=1,2有些担心,因为该字段是varchar,但添加撇号没有帮助。@Calle首先,我忘记了按
sex
过滤,其次,我使用
meta_key=1
而不是
meta_value=1
(更新了答案)。现在试试看。啊!将选定零件中的meta_键更改为meta_值可使其正常工作。非常感谢。