使用WHERE AND OR的MySQL语句

时间:2015-10-31 05:57:52

标签: mysql mysqli where

我尝试执行以下操作,我在这里缺少什么?

DELETE FROM escrow WHERE  host = '$name' OR challenger = '$name' AND id='$match_id'

1 个答案:

答案 0 :(得分:1)

当您在任何编程语言的任何情况下使用ANDOR 始终时,请使用括号。有一个隐含的顺序首先被评估(ANDOR条件)但你通常不知道顺序,不应该需要在手册中查找

同样使用Prepared statements进行依赖于变量的SQL查询。

在你的情况下,你要么写

... WHERE (host = ? OR challenger = ?) AND id = ?

... WHERE host = ? OR (challenger = ? AND id = ?)

取决于您想要的条件。

此外,当SQL查询因任何原因失败时,请检查从数据库获取的错误消息。它会告诉你查询有什么问题。但是,没有返回任何行的有效查询(因为WHERE条件与任何行不匹配)仍然是有效查询而不是错误,结果只是空。