2015-11-19 44 views
0

我想編寫一個查詢到我的數據庫上的多個列的搜索,但是,我需要強制ID上的那些條件,頂部要匹配:MySQL的搜索多列,但迫使一個條件

SELECT users.id, users.first_name, users.last_name, users.email, fax_did.fax_did,users.enterprise_id FROM users 
INNER JOIN users_groups ON users.id = users_groups.user_id 
INNER JOIN groups ON users_groups.group_id = groups.id 
INNER JOIN product ON groups.id = product.groupid 
INNER JOIN fax_did ON product.productid = fax_did.productid 
WHERE users.enterprise_id = 2 
AND users.first_name LIKE '%test%' 
OR users.last_name LIKE '%test%' 
OR users.email LIKE '%test%' 
OR fax_did.fax_did LIKE '%239214%' 

我需要的搜索條件返回匹配enterprise_id的結果如下所示:

WHERE users.enterprise_id = 2 

然而,其他搜索條件可能是可選的:

AND users.first_name LIKE '%test%' 
OR users.last_name LIKE '%test%' 
OR users.email LIKE '%test%' 
OR fax_did.fax_did LIKE '%239214%' 

有沒有辦法實現這個目標?非常感謝!

回答

2

這是否給你結果你期待:

SELECT users.id, users.first_name, users.last_name, users.email, fax_did.fax_did,users.enterprise_id FROM users 
INNER JOIN users_groups ON users.id = users_groups.user_id 
INNER JOIN groups ON users_groups.group_id = groups.id 
INNER JOIN product ON groups.id = product.groupid 
INNER JOIN fax_did ON product.productid = fax_did.productid 
WHERE users.enterprise_id = 2 
AND (users.first_name LIKE '%test%' 
OR users.last_name LIKE '%test%' 
OR users.email LIKE '%test%' 
OR fax_did.fax_did LIKE '%239214%') 

+0

完美,完全按照需要工作。非常感謝! –