这里是我的MySQL查询而忽略类别字段条件,结果也返回从其他类别未在查询结果可看出,这里是我的MySQL查询语句的MySQL返回PHP的搜索查询错误的结果
select *,classifieds.id as id
from classifieds,classifieds_meta
where
category=1
AND meta_key='vehicle_make'
and meta_value=2
OR meta_key='vehicle_make'
and meta_value=3
AND (meta_key='vehicle_mileage' and meta_value=9)
OR (meta_key='vehicle_mileage' and meta_value=10)
OR (meta_key='vehicle_mileage' and meta_value=11)
AND classifieds.id=classifieds_meta.classifieds_id
GROUP BY classifieds.id
上面的sql语句返回类别1和6的结果而不是1,有人可以帮忙吗?
您正在选择将从两个表中选择全部的'*'。如果你只想要所有分类,你应该使用分类。*' – James
你正在混合'和'和'或'子句,这将明确导致不正确的结果,除非你知道你在做什么,并理解mysql的运算符优先级规则:http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html –
或者只是将此行'category = 1'更改为'category = 1 AND category!= 6'。 – JakeGould