开发者

My SQL multiple search criteria

I have a search query that looks for user clients via email. I would like it to look for first name and surname as well.

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

I tried changing the second to last line to

AND user_email, lastname, firstname LIKE '%$se开发者_开发问答archpattern%' 
        ORDER BY lastname;");

But that did not work.

Any ideas?

Marvellous


Maybe you just meant

AND 
(
  user_email LIKE '%$searchpattern%' 
  OR lastname LIKE '%$searchpattern%'
  OR firstname   LIKE '%$searchpattern%'
)


In your WHERE clause, you must refer to table entities, and not entities in your result set.

You probably want:

AND 
(
  wp_users.user_email LIKE '%$searchpattern%' 
  OR meta_lastname.meta_value LIKE '%$searchpattern%'
  OR meta_firstname.meta_value LIKE '%$searchpattern%'
)

Don't forget to escape $searchpattern with mysql_real_escape_string before using it in a query.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜