我有一个搜索查询,通过电子邮件查找用户客户端。我希望它能找到名字和姓氏。
$list = mysql_query("SELECT id,
user_email,
meta_lastname.meta_value lastname,
meta_firstname.meta_value firstname
FROM wp_users
LEFT JOIN wp_usermeta meta_lastname
ON meta_lastname.user_id = wp_users.id
LEFT JOIN wp_usermeta meta_firstname
ON meta_firstname.user_id = wp_users.id
WHERE meta_lastname.meta_key = 'last_name'
AND meta_firstname.meta_key = 'first_name'
AND user_email LIKE '%$searchpattern%'
ORDER BY lastname;");
我尝试将第二行更改为
AND user_email, lastname, firstname LIKE '%$searchpattern%'
ORDER BY lastname;");
但那没用。
有什么想法吗?
非凡
答案 0 :(得分:2)
也许你的意思是
AND
(
user_email LIKE '%$searchpattern%'
OR lastname LIKE '%$searchpattern%'
OR firstname LIKE '%$searchpattern%'
)
答案 1 :(得分:0)
在WHERE子句中,您必须引用表实体,而不是结果集中的实体。
你可能想要:
AND
(
wp_users.user_email LIKE '%$searchpattern%'
OR meta_lastname.meta_value LIKE '%$searchpattern%'
OR meta_firstname.meta_value LIKE '%$searchpattern%'
)
在查询中使用它之前,不要忘记使用mysql_real_escape_string
转义$ searchpattern。