Mysql Between函数无法在联接中使用

问题描述 投票:0回答:1

我有一个查询,首先在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)
php mysql
1个回答
0
投票

尝试使用OR,但我没有意识到这将在mysql中起作用,如果您尝试在postgres or mssql中运行此查询,它将失败。

© www.soinside.com 2019 - 2024. All rights reserved.