Laravel原始查询与复杂的地方不正常

时间:2014-10-22 22:11:16

标签: mysql

请快点,我正在开展一个项目,并尝试从表中检索广告,其中包含类别,子类别及其标题的广告。

这是查询:

SELECT DISTINCT id FROM ads WHERE category = 4 AND subcategory = 79 AND title LIKE '%Samsung%' OR title LIKE '%galaxy%' OR title LIKE '%S4%' ORDER BY IF(title Like '%Samsung%', 1, 0) + IF(title Like '%galaxy%', 1, 0) + IF(title Like '%S4%', 1, 0) DESC LIMIT 25

问题:

查询忽略了类别和子类别,并且只要标题与提供的字符串一样,就会忽略类别和子类别,我似乎无法弄清楚问题是什么,请为此我需要帮助,谢谢提前!

1 个答案:

答案 0 :(得分:1)

LIKE语句括在括号中:

SELECT DISTINCT id
FROM ads
WHERE category = 4
  AND subcategory = 79
  AND (title LIKE '%Samsung%'
       OR title LIKE '%galaxy%'
       OR title LIKE '%S4%')
ORDER BY IF(title LIKE '%Samsung%', 1, 0) + IF(title LIKE '%galaxy%', 1, 0) + IF(title LIKE '%S4%', 1, 0) DESC LIMIT 25

查看Mysql Operator Precendence Docs