繁体   English   中英

在一个查询中执行多个mysql更新

[英]Execute multiple mysql updates in one query

将两个mysqli查询合并为一个查询的最佳方法是什么

表SERVER_JOINS

ID    DEFAULT   SERVER_ID     MEMBER_ID
---------------------------------------
1       0         1             57
2       0         52            57
3       0         22            57
4       1         35            57

只有一行必须将默认值设置为1。通过单击链接,我想更改默认值

mysqli_query($database->connection,"UPDATE `server_joins` SET 
`default` = '0' WHERE `default` = '1' AND `member_id` = '$session->u_id'");

mysqli_query($database->connection,"UPDATE `server_joins` SET 
`default` = '1' WHERE `server_id`= '$id' AND `member_id` = '$session->u_id'");

我认为您想避免这样的事情:

mysqli_query($database->connection,"UPDATE `server_joins` 
SET `default` = '1' 
WHERE `default`= '0' AND `server_id`= '$id' AND `member_id` = '$session->u_id'");

使用if()函数或条件case表达所述的set取决于服务器字段的值子句来决定缺省值是否是要被设置为0或1。

UPDATE `server_joins`
SET `default` = if(`server_id`= $id, 1, 0)
WHERE `member_id` = $session->u_id

几个注意事项:

  1. 您的代码可能容易受到sql注入攻击。 考虑使用带参数的预备语句。
  2. 如果字段中有数字值,则不要将值作为字符串传递。 Mysql必须在飞行中转换值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM