使用LIKE进行MySQL查询

时间:2012-09-24 10:03:22

标签: mysql

我对此查询有疑问。

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)喜欢的东西,但它仍会显示包含LOWER(miesto)内容的所有内容。 我不确定我是否正确解释了它。为我的英语学习。

由于

2 个答案:

答案 0 :(得分:3)

您需要将OR包裹在()

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

答案 1 :(得分: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
相关问题