我在我的SQL查询中有这一行:
WHERE client = $id
AND (isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1)
Run Code Online (Sandbox Code Playgroud)
这得到的结果比我预期的要多.但是,如果我这样写:
WHERE client = $id
AND (isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1 and client = $id)
Run Code Online (Sandbox Code Playgroud)
然后它得到了我想要的结果,但这是写这个的最好方法吗?我只是不想让这个代码遇到任何问题.
你需要()在整个AND条款中再多做一套.这表明client = $id必须是真的,其他条件中的任何一个也必须是真的= isinvoiced = 0或者它的组合isinvoiced = 1 and isrecurring = 1.
WHERE client = $id
AND ((isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1))
Run Code Online (Sandbox Code Playgroud)