我有一个查询,首先在productpost表中使用属性ID为1或4的值检查LIKE,然后(直到此为止,它都能正常工作)并且下一个属性ID为3且值为0至50的部分(这部分查询将所有结果都带入数据库中,但它应该只将propertyid 3中值为0到50的值带入数据库中。
productpost表[1] https://imgur.com/a/YxJDXmb
我尝试了很多东西,而不是之间的东西,但是它不起作用,在代码的最后一部分之前一切都很好
SELECT COUNT(DISTINCT a.id) as `num` FROM product a INNER JOIN customer b ON a.userid=b.cid INNER JOIN productcategory c ON a.id=c.id INNER JOIN productpost d ON a.adid=d.adid WHERE a.verif=1 AND c.cattype=1 AND (d.value LIKE '%a%') AND (d.propertyid in (1,4)) AND (d.propertyid=3 AND d.value BETWEEN 0 AND 50)
一切正常,但是这部分,但是这部分的添加开始产生错误的结果
(d.propertyid=3 AND d.value BETWEEN 0 AND 50)
尝试使用OR
,但我没有意识到这将在mysql
中起作用,如果您尝试在postgres or mssql
中运行此查询,它将失败。