如何使用多个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);
谢谢
最合适的回答,由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)