WP SQL查询多个WHERE子句

时间:2015-01-13 作者:CiprianD

我正在尝试获取在特定时间后注册的用户(本例为$today),并且他们的新闻稿字段为true,帐户为false。这是我到目前为止得到的结果,但结果总是0。

$new_users_newsletter = $wpdb->get_results(
    "SELECT *
    FROM $wpdb->users
    RIGHT JOIN $wpdb->usermeta
    ON $wpdb->users.ID = $wpdb->usermeta.user_id
    WHERE ($wpdb->users.user_registered >= \'$today\'
        AND $wpdb->usermeta.meta_key LIKE \'newsletter\' AND $wpdb->usermeta.meta_value LIKE \'true\'
        AND $wpdb->usermeta.meta_key LIKE \'account\' AND $wpdb->usermeta.meta_value LIKE \'false\')
    GROUP BY $wpdb->users.ID"
);

1 个回复
最合适的回答,由SO网友:birgire 整理而成

你可以试试这个WP_User_Query 而是:

$args = array (
    \'meta_query\'    => array(
        array(
            \'key\'   => \'newsletter\',
            \'value\' => \'true\',
        ),
        array(
            \'key\'   => \'account\',
            \'value\' => \'false\',
        ),
    ),
    \'date_query\'    => array(
        array(  
            \'after\'     => \'2015-01-13 00:00:00\',
            \'inclusive\' => true,
        ),          
     ),
);

$user_query = new WP_User_Query( $args );
其中,我假设您的用户元值是布尔字符串,即。\'true\'\'false\'.

结束

相关推荐

如何使用wpdb按标题获取条目

我已经通过metabox创建了一个表单,并将数据保存在自定义表中我的桌子是:$table_name = $wpdb->prefix . \'aacv\'; $sql = \"CREATE TABLE $table_name ( id int(11) NOT NULL AUTO_INCREMENT, user_id int(20) Not Null, name varchar(255) collate utf8_unicode_ci NOT NU