基于元值和元键的搜索用户

时间:2011-09-15 作者:sharktech

如何使用多个meta\\u键和meta\\u值来搜索用户?

例如,我想搜索(&A);查找用户名为“David”&;位于“伦敦”。

我正在使用此查询,但没有结果!

$query = "SELECT user_id FROM $wpdb->usermeta WHERE (meta_value LIKE \'%%david%%\') AND (meta_key = \'first_name\') AND (meta_value LIKE \'%%london%%\') AND (meta_key = \'location\')";

$rows = $wpdb->get_results($query);
谢谢

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

您的查询是错误的,这是返回noting的方式,因为数据库中没有包含多个meta\\u键的行。相反,您可以创建一个子查询,以获取居住在伦敦的所有用户的用户id作为子查询,并使用该子查询筛选名为David的用户的用户id,如下所示:

$query = "SELECT user_id FROM $wpdb->usermeta
    WHERE (meta_value LIKE \'%%david%%\') 
    AND (meta_key = \'first_name\') 
    AND user_id IN (SELECT user_id FROM $wpdb->usermeta WHERE (meta_value LIKE \'%%london%%\') AND (meta_key = \'location\'))";

$rows = $wpdb->get_results($query)

结束

相关推荐

如何在wp-admin users.php中显示多个定制列?

我使用manage\\u users\\u列来显示我在usermeta数据库中创建的名为company的自定义字段。我的代码如下:function mysite_column_company( $defaults ) { $defaults[\'mysite-usercolumn-company\'] = __(\'Company\', \'user-column\'); return $defaults; } function mysite_custom_col