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

时间:2016-12-03 23:16:56

标签: php mysql mysqli

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

TABLE 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'");

2 个答案:

答案 0 :(得分:0)

我想你想要做到这样的事情:

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

答案 1 :(得分:0)

if()子句中使用case函数或条件set表达式,具体取决于服务器字段的值,以确定default是否设置为0或1。 / p>

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

几个笔记:

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