单个查询中的多个表/行/列更新
我想简化我的代码,因为我的用户很少,而且当有很多用户时我的服务器挂断了。如果我在单个查询中使用它们,或者如果它可以使用多个查询,那么让我知道它是否节省了时间,那么我很满意它
这是我的税表
id | time | tax1 | tax2 | tax3
1 | 1469856318 | 1 | 2 | 6
2 | 1469856318 | 5 | 1 | 1
3 | 1469856318 | 6 | 8 | 5
4 | 1469856318 | 2 | 7 | 7
5 | 1469856318 | 1 | 1 | 2
我正在使用这些步骤,但有时会有很多行和列。
$u0 = "UPDATE tax SET time='$ms', tax1='$tax1' WHERE id = 1";
$u1 = "UPDATE tax SET time='$ms', tax2='$tax2' WHERE id = 2";
$u2 = "UPDATE tax SET time='$ms', tax3='$tax3' WHERE id = 3";
我很想知道是否可以在一个查询中执行此操作
另一件事
如果可以在单个查询中更新两个不同的表
$u0 = "UPDATE tax SET time='$ms', tax1='$tax1' WHERE id = 1";
$u1 = "UPDATE tax SET time='$ms', tax2='$tax2' WHERE id = 2";
$u2 = "UPDATE tax SET time='$ms', tax3='$tax3' WHERE id = 3";
$u4 = "UPDATE tax1 SET tax2='$tax2' WHERE id = 5";
答案 0 :(得分:0)
您可以使用条件逻辑来更新单个表:
UPDATE tax
SET time = '$ms',
tax1 = (CASE WHEN id = 1 THEN '$tax1' ELSE tax1 END),
tax2 = (CASE WHEN id = 2 THEN '$tax2' ELSE tax2 END),
tax3 = (CASE WHEN id = 3 THEN '$tax3' ELSE tax3 END)
WHERE id IN (1, 2, 3);
我建议您单独更新每个查询。