2012-04-18 60 views
0

我需要查询,将选择所有的名字和一些表中的所有绰号,但只有其中id是在一些array.This是查询:查询有三个条件

SELECT n. * FROM nikovi n 
INNER JOIN sajt_nikovi s ON n.id = s.nik 
WHERE s.sajt = '50' and  n.nadimak like '%ana%' or n.ime like '%ana%' 

,并且找到的所有条目从表,其中n.ime像'%ana%',不仅仅是这个连接。有人有什么主意吗?

+0

使用括号使你查询 – Peeyush 2012-04-18 12:29:11

回答

4

AND绑定比OR更难,这意味着它会评估类似;

WHERE (s.sajt = '50' and n.nadimak like '%ana%') or n.ime like '%ana%' 

如果您的意思是别的,您需要添加圆括号以使其对数据库清楚。在这种情况下,您需要将其更改为;

WHERE s.sajt = '50' and (n.nadimak like '%ana%' or n.ime like '%ana%') 
+0

的正确比我跑得快,我只是写了相同的答案,你打的帖子.. :-) – Peeyush 2012-04-18 12:27:45

+0

Tahnk你非常非常非常!它完美的工作! – 2012-04-18 12:50:14

1

组您OR

SELECT n. * 
FROM nikovi n 
INNER JOIN sajt_nikovi s 
ON n.id = s.nik 
WHERE s.sajt = '50' 
AND (n.nadimak LIKE '%ana%' OR n.ime LIKE '%ana%') 
0

总是使用括号,当你混合AND和OR

SELECT n. * FROM nikovi n INNER JOIN sajt_nikovi s ON n.id = s.nik WHERE s.sajt = '50' AND (n.nadimak LIKE '%ana%' OR n.ime LIKE '%ana%')