2015-11-19 36 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

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