2015-03-02 21 views
0

我正面臨一個問題匹配/搜索MySQL中多列的值。MySql搜索名稱和電子郵件多列

在我的表中,我有姓名,所有者,電子郵件,altemail,altemail2,altemail3列名。

name = John; 電子郵件= [email protected]

現在名稱可能在名稱或所有者列和電子郵件可能在上面四列。

現在我想進行搜索並列出姓名和電子郵件都存在的結果。意味着姓名和電子郵件應該不僅僅匹配姓名或電子郵件。

這是我迄今但不是工作完成:

SELECT*      
FROM $table 
WHERE name = '%s' OR owner = '%s' AND email = '%s' OR alt_email = '%s' 
OR alt_email2 = '%s' OR alt_email3 = '%s'",$name,$email,$email,$email,$email); 

但在這裏,如果名稱匹配它顯示的結果而忽略電子郵件,或者如果郵件匹配它顯示的結果忽略的名字。但我需要該用戶信息來匹配名稱和電子郵件。

再次感謝您的幫助。

回答

1

改變您的查詢到該

SELECT*      
FROM $table 
WHERE (name = '%s' OR owner = '%s') AND (email = '%s' OR alt_email = '%s' 
OR alt_email2 = '%s' OR alt_email3 = '%s')",$name,$name,$email,$email,$email,$email); 
0

這應該工作:

SELECT * FROM $table WHERE (name = '%s' OR owner = '%s') AND (email = '%s' OR alt_email = '%s' OR alt_email2 = '%s' OR alt_email3 = '%s')",$name,$email,$email,$email,$email);