【问题标题】:Get the number of users with a certain usermeta value in Wordpress DB获取Wordpress DB中具有一定usermeta值的用户数
【发布时间】:2012-04-14 16:23:10
【问题描述】:

Wordpress 数据库结构如下所示:

  • wp_users(ID、user_registered 等)
  • wp_usermeta(user_id、meta_key、meta_value 等)

wp_users.ID 对应于wp_usermeta.user_id

我想选择按 DATE(wp_users.user_registered) 分组的所有用户的计数,以及它们对应于元键 'sex' 的元值,即 1 或 2。结果应该由两列组成许多行,因为有唯一的日期。第一列应该是元值 1 的用户数,第二列是元值 2 的用户数。

我对特定于 WP 的构造不感兴趣,我想用一个 SQL 查询来做到这一点。

如果它足够好,我会发布我的尝试,不幸的是我没有那么好。真的很感激任何帮助。

【问题讨论】:

    标签: mysql sql wordpress


    【解决方案1】:

    试试这个:

    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)
    

    你说:

    结果应该包含两列和与唯一日期一样多的行。

    这样做的问题是您不知道每一行所指的日期。你可以在select 语句中添加date(u.user_registered) 来查看。

    【讨论】:

    • 我无法完成这项工作。您添加日期(u.user_registered)是对的,我需要它。日期看起来不错,但其他两列对于所有行都为零。我对 um.meta_key = 1, 2 有一些担忧,因为该字段是 varchar 但添加撇号没有帮助。
    • @Calle 首先,我忘记按sex 过滤,其次,我使用meta_key = 1 而不是meta_value = 1(更新了答案)。现在就试试吧。
    • 啊!在选择部分将 meta_key 更改为 meta_value 使其工作。谢谢。
    猜你喜欢
    • 2011-09-02
    • 2019-05-18
    • 2014-06-10
    • 2015-05-26
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多