Mysql WHERE查询

时间:2013-05-09 19:17:59

标签: mysql

对查询的帮助很少

我有这个查询

SELECT
  link_usluge, id_usluge, naslov_usluge, mesto,
  deo_grada, adresa, telefon, opis,
  naslov_kategorije, kompletno
FROM
  usluge LEFT JOIN kategorija ON koja_kategorija=id_kategorija 
WHERE
  naslov_kategorije LIKE '%auto mehaničar%'
  AND mesto LIKE '%Novi Sad%'
  AND deo_grada LIKE '%Detelinara%'
  AND markevozila LIKE '%SKODA%'
ORDER BY
   id_usluge DESC 

我需要一个查询来添加它,总是在这个查询中有markevozila='SVE MARKE',意味着在提到的查询中我必须添加所有行中有SVE MARKE的行,并添加{{1行如何查询,任何想法?

Txanks很多

实施例

  

简单,我希望得到所有结果markevozila ='SVE MARKE'和那个   查询我想添加markevozila LIKE'%SKODA%'。在塞尔维亚SVE MARKE   表示ALLCARS,markevozila表示TYPEOFCARS,当某些时候   输入AUDI我将查询AUDI的所有结果,但我想添加到   结果和所有其他结果有TYPEOFCARS ='ALLCARS

2 个答案:

答案 0 :(得分:0)

我不确定我是否真的理解这个问题,但我认为你只需要改变

AND markevozila LIKE '%SKODA%'

进入

AND (markevozila LIKE '%SKODA%' OR markevozila LIKE 'SVE MARKE')

编辑2:

OP似乎想要这个吗?

AND (markevozila LIKE '%SKODA%SVE MARKE%' OR markevozila LIKE '%SVE MARKE%SKODA%')

答案 1 :(得分:0)

您可以将markevozila LIKE '%SKODA%'更改为(markevozila = 'SVE MARKE' OR markevozila LIKE '%SKODA%')

SELECT
  link_usluge, id_usluge, naslov_usluge, mesto,
  deo_grada, adresa, telefon, opis,
  naslov_kategorije, kompletno
FROM
  usluge LEFT JOIN kategorija ON koja_kategorija=id_kategorija 
WHERE
  naslov_kategorije LIKE '%auto mehanicar%'
  AND mesto LIKE '%Novi Sad%'
  AND deo_grada LIKE '%Detelinara%'
  AND (markevozila = 'SVE MARKE' OR markevozila LIKE '%SKODA%')
ORDER BY
   id_usluge DESC

如上所述,将括号括在OR附近非常重要 - 如果不这样做,表达式将无法正常工作。如果你想让我更多地解释括号,请告诉我 - 这是一个很长的解释,但如果你需要它,我很乐意写下来。