![](/img/trans.png)
[英]how to update a table and insert a new record to another table in one query?
[英]How to Update new tables inside another update query?
我有一個遺留系統,里面有一個 php 文件,更新一張表。 現在我在我的數據庫中添加了一個新表,我也想更新該表。 問題是(由於某些原因)我不能使用另一個查詢,我必須更改當前查詢。
簡化以前的查詢: $q = "UPDATE t1 SET var=$var WHERE id=1";
我不能使用"UPDATE t1,t2 SET t1.var=$var t2.var=$var2 WHERE id=1"
因為它增加了太多的處理時間。 是否可以在一個查詢中運行兩個更新查詢? 我在整個系統中使用mysql
命令,但無法將其更改為mysqli
。
您可以使用以下代碼同時更新 2 個表。 :-)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}
$sql = "UPDATE t1 SET var=$var WHERE id=1";
$sql2 = "UPDATE t2 SET var=$var WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "t1 updated successfully";
} else {
echo "Error updating t1: " . $conn->error;
}
if ($conn->query($sql2) === TRUE) {
echo "t2 updated successfully";
} else {
echo "Error updating t2: " . $conn->error;
}
$conn->close();
?>
對於任何遇到這個問題的人,有兩種簡單的方法可以做到這一點:
方法一:
UPDATE Books, Orders
SET Orders.Quantity = Orders.Quantity + 2,
Books.InStock = Books.InStock - 2
WHERE
Books.BookID = Orders.BookID
AND Orders.OrderID = 1002;
方法二(內連接):
UPDATE t1
INNER JOIN t2 ON t2.t1_id = t1.id
INNER JOIN t3 ON t2.t3_id = t3.id
SET t1.a = 'something',
t2.b = 42,
t3.c = t2.c
WHERE t1.a = 'blah';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.