我在我的SQL查询中有这一行:
WHERE client = $id
AND (isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1)
比我预期的要多的结果。然而,如果我这样写:
WHERE client = $id
AND (isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1 and client = $id)
然后它给我想要的结果,但这是编写代码的最佳方式吗?我只是不想再遇到任何问题。
a AND b OR c
和a AND (b OR c)
之间的区别吗?你的例子更清晰地写成(a AND b) OR c
,而不是你真正想要的内容。 - MatBailie