web-dev-qa-db-fra.com

Comment interroger les utilisateurs qui ont un prénom vide?

Jusqu'à présent, j'ai essayé ces trois options et les trois ne fonctionnent pas.

Option 1

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

$users = get_users( $options );

Option 2

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

$users = get_users( $options );

Option 3

$options = array(
    'meta_query' => array(
        array(
            'key'     => 'first_name',
            'compare' => 'NOT EXISTS',
        ),
    )
);
$users = get_users( $options );
1
Sudar

Il semble que vous cherchiez les méta-clés first_name avec les méta-valeurs empty string:

$options = array(
    'meta_query' => array(
        array(
            'key'     => 'first_name',
            'value'   => '',
            'compare' => '=',
        ),
    )
);
$users = get_users( $options );

qui génère ce type de requête 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 

Notez que

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

génère ce type de requête 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 ;
1
birgire

Utilisé sous le code. il retourne toutes les données qui n'ont pas de clé prénom dans la base de données ou qui ont un prénom vide

$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;
5
Jignesh Patel