我有一个查询,用于从Wordpress表返回用户详细信息。如果我只是选择我想要的列名,那就好了,但在Wordpress中有一个usermeta表,它有两列,一列称为metakey,一列称为MetaValue。
我想从元键(如first\\u name和last\\u name)中获取某些用户信息,但它们都在同一列-metavalue中。
以下是我所拥有的:
$allquery="SELECT $comma_separated, wp_usermeta.meta_value, wp_usermeta.meta_key,
//comma_seperated are a list of values to search for seperate by ",". this is name, email
GROUP_CONCAT(
wp_usermeta.meta_value
ORDER BY wp_usermeta.meta_key
) AS name
FROM wp_users
LEFT JOIN wp_usermeta
ON wp_users.ID = wp_usermeta.user_id
WHERE (wp_usermeta.meta_key = \'first_name\'
OR wp_usermeta.meta_key = \'last_name\')
AND wp_users.user_login = \'$spec_user\'
GROUP BY wp_users.ID";
$names = array();
$allresult=mysql_query($allquery) or die(mysql_error());
while($rows=mysql_fetch_array($allresult)){
$names[] = $rows[\'name\']; //name is from the group_concat in query
$emails[] = $rows[\'user_email\'];
}
问题是,这只返回一行。我认为这可能与线路有关:和wp\\U用户。user\\u登录名=“$spec\\u user”
其中,$spec\\U user是用户输入的值。
理想情况下,我希望返回所有行,其中user\\u login列等于用户输入的内容。不仅来自该表,还来自usermeta表。