如何查询First_Name为空的用户?

时间:2017-07-06 作者:Sudar

到目前为止,我已经尝试了这三种选择,但这三种都不起作用。

选项1

$options = array(
    \'meta_key\'     => \'first_name\',
    \'meta_value\'   => \'\',
    \'meta_compare\' => \'=\',
);

$users = get_users( $options );
选项2
$options = array(
    \'meta_key\'     => \'first_name\',
    \'meta_value\'   => null,
    \'meta_compare\' => \'=\',
);

$users = get_users( $options );
选项3
$options = array(
    \'meta_query\' => array(
        array(
            \'key\'     => \'first_name\',
            \'compare\' => \'NOT EXISTS\',
        ),
    )
);
$users = get_users( $options );

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

看起来您正在搜索first_name 元键具有empty 字符串元值:

$options = array(
    \'meta_query\' => array(
        array(
            \'key\'     => \'first_name\',
            \'value\'   => \'\',
            \'compare\' => \'=\',
        ),
    )
);
$users = get_users( $options );
生成此类SQL查询的:

SELECT wp_users.* 
FROM wp_users 
INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id ) 
WHERE 
    1=1 AND ( ( wp_usermeta.meta_key = \'first_name\' AND wp_usermeta.meta_value = \'\' ) ) 
ORDER BY user_login ASC 
请注意

$options = array(
    \'meta_key\'     => \'first_name\',
    \'meta_value\'   => \'\',
    \'meta_compare\' => \'=\',
);
$users = get_users( $options );
生成此类SQL查询:

SELECT wp_users.* 
FROM wp_users 
INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id ) 
WHERE 1=1 AND ( wp_usermeta.meta_key = \'first_name\' ) 
ORDER BY user_login ASC ;

SO网友:Jignesh Patel

使用以下代码。它返回数据库中没有first\\u name键或first\\u name为空的所有数据

$args = array(
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array(
            \'key\' => \'first_name\',
            \'value\' => \'\',
            \'compare\' => \'=\',
        ),
        array(
            \'key\' => \'first_name\',
            \'value\' => \'\',
            \'compare\' => \'NOT EXISTS\',
        ),
    )
);
$users = get_users( $args );
var_dump($users);exit;

结束

相关推荐

从wp_USERS和wp_USERMETA中一次删除几千个订户

我有一个有7万垃圾邮件订阅者的网站,我不需要他们中的任何一个。因此,我需要使用adminer和/或phpmyadmin中的查询从wp\\U users中删除所有订阅者,并从wp\\U usermeta中删除每个用户的关联元。但是为了防止服务器崩溃,我怎么能一次删除几千个呢?这似乎是我需要的基本查询:DELETE FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id WHERE meta