我的SQL多个搜索条件

时间:2011-04-23 14:44:48

标签: mysql search

我有一个搜索查询,通过电子邮件查找用户客户端。我希望它能找到名字和姓氏。

$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;");

但那没用。

有什么想法吗?

非凡

2 个答案:

答案 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。