0

我对这个查询有疑问。

SELECT id, zadane, firma, nazov, miesto, ukoncenie
FROM praca
WHERE LOWER( nazov ) LIKE '%administratívny pracovník, referent%'
AND potvrdena =1
AND LOWER( miesto ) LIKE '%bratislavský kraj%'
OR LOWER( miesto ) LIKE '%bratislava%'
OR LOWER( miesto ) LIKE '%malacky%'
OR LOWER( miesto ) LIKE '%pezinok%'
OR LOWER( miesto ) LIKE '%senec%'
ORDER BY nazov
LIMIT 0 , 30

它应该只显示 LOWER(nazov) LIKE 的记录,但它仍然显示包含来自 LOWER(miesto) 的东西的所有内容。我不确定我是否解释正确。对不起我的英语。

谢谢

4

2 回答 2

3

您需要将ORs 包装在().

SELECT id, zadane, firma, nazov, miesto, ukoncenie
FROM praca
WHERE LOWER( nazov ) LIKE '%administratívny pracovník, referent%'
AND potvrdena =1
AND ( 
   LOWER( miesto ) LIKE '%bratislavský kraj%'
   OR LOWER( miesto ) LIKE '%bratislava%'
   OR LOWER( miesto ) LIKE '%malacky%'
   OR LOWER( miesto ) LIKE '%pezinok%'
   OR LOWER( miesto ) LIKE '%senec%' 
)
ORDER BY nazov
LIMIT 0 , 30
于 2012-09-24T10:05:58.853 回答
0

尝试这个:

SELECT id, zadane, firma, nazov, miesto, ukoncenie
FROM praca
WHERE LOWER( nazov ) LIKE '%administratívny pracovník, referent%'
AND potvrdena =1
AND( 
   LOWER( miesto ) LIKE '%bratislavský kraj%'
OR LOWER( miesto ) LIKE '%bratislava%'
OR LOWER( miesto ) LIKE '%malacky%'
OR LOWER( miesto ) LIKE '%pezinok%'
OR LOWER( miesto ) LIKE '%senec%'
)
ORDER BY nazov
LIMIT 0 , 30
于 2012-09-24T10:07:07.817 回答