ale*_*567 2 php mysql database
我试图像这样运行SQL查询:
$sql = mysql_query("select * from users where new_mail = 0 OR new_events = 0 and emailed = 1") or die(mysql_error());
while($r=mysql_fetch_array($sql))
{
mysql_query("update users set emailed = 0 where username='{$r['username']}'") or die(mysql_error());
}
Run Code Online (Sandbox Code Playgroud)
但它似乎忽略了OR语句,只跟在和语句之后.所以它继续进行,并设置通过电子邮件发送到0,即使他们仍然有new_mail或new_event.有什么线索的原因?
谢谢你的帮助!
在MySQL中,AND运算符具有比运算符更高的优先级OR.
要获得所需的逻辑,请尝试按照您希望的方式对参数进行分组:
$sql = mysql_query("select * from users where (new_mail = 0 OR new_events = 0) and emailed = 1") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |