我需要进行查询,从某些表中选择所有名称和所有昵称,但只有id在某个数组中。这是查询:
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 :(得分: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%')
答案 1 :(得分: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%')
答案 2 :(得分: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%')