PHP, MySQL 更新多列
PHP, MySQL Update multiple columns
$mengetotzut = 7','8','9','22','23','24','25 ;
$zutatiddd = 42','75','8','90','23','82','33 ;
$sql5= "UPDATE zutaten SET Menge=('$mengetotzut') WHERE Zutat_ID IN('$zutatiddd')";
$run_query = mysqli_query($con,$sql5);
As SQL 语句看起来像 :
UPDATE zutaten SET Menge=('42','75','8','90','23','82','33') WHERE Zutat_ID IN('7','8','9','22','23','24','25')
我想做的是:
Update Menge='42' Where Zutat_ID is '7' AND Update Menge ='75' Where Zutat_ID = '8' ...
但在一个 SQL 语句中。谁能告诉我这是否可行,我该怎么做?
使用foreach循环
foreach( $mengetotzut as $index => $code ) {
$sql5= "UPDATE zutaten SET Menge=('$code') WHERE Zutat_ID = $zutatiddd[$index];
$run_query = mysqli_query($con,$sql5);
}
考虑到两个数组的计数相同,请尝试以下
$count = 7;
for ($i=0; $i<$count; $i++) {
$sql5= "UPDATE zutaten SET Menge=$mengetotzut[$i] WHERE Zutat_ID = $zutatiddd[$i]";
$run_query = mysqli_query($con,$sql5);
}
您可以使用如下所示的 SQL
查询一次性 UPDATE
:
UPDATE zutaten AS t1
JOIN (
SELECT 7 AS Zutat_ID, 42 AS Menge
UNION ALL
SELECT 8, 75
UNION ALL
SELECT 9, 8
) t2 ON t1.Zutat_ID = t2.Zutat_ID
SET t1.Menge = t2.Menge
您要查询的是 CASE
,您的查询将如下所示:
UPDATE zutaten SET Menge = CASE Zutat_ID
WHEN 42 THEN 7
WHEN 75 THEN 8
WHEN 8 THEN 9
WHEN ...
END WHERE Zutat_ID IN (42,75,8,...)
$mengetotzut = 7','8','9','22','23','24','25 ;
$zutatiddd = 42','75','8','90','23','82','33 ;
$sql5= "UPDATE zutaten SET Menge=('$mengetotzut') WHERE Zutat_ID IN('$zutatiddd')";
$run_query = mysqli_query($con,$sql5);
As SQL 语句看起来像 :
UPDATE zutaten SET Menge=('42','75','8','90','23','82','33') WHERE Zutat_ID IN('7','8','9','22','23','24','25')
我想做的是:
Update Menge='42' Where Zutat_ID is '7' AND Update Menge ='75' Where Zutat_ID = '8' ...
但在一个 SQL 语句中。谁能告诉我这是否可行,我该怎么做?
使用foreach循环
foreach( $mengetotzut as $index => $code ) {
$sql5= "UPDATE zutaten SET Menge=('$code') WHERE Zutat_ID = $zutatiddd[$index];
$run_query = mysqli_query($con,$sql5);
}
考虑到两个数组的计数相同,请尝试以下
$count = 7;
for ($i=0; $i<$count; $i++) {
$sql5= "UPDATE zutaten SET Menge=$mengetotzut[$i] WHERE Zutat_ID = $zutatiddd[$i]";
$run_query = mysqli_query($con,$sql5);
}
您可以使用如下所示的 SQL
查询一次性 UPDATE
:
UPDATE zutaten AS t1
JOIN (
SELECT 7 AS Zutat_ID, 42 AS Menge
UNION ALL
SELECT 8, 75
UNION ALL
SELECT 9, 8
) t2 ON t1.Zutat_ID = t2.Zutat_ID
SET t1.Menge = t2.Menge
您要查询的是 CASE
,您的查询将如下所示:
UPDATE zutaten SET Menge = CASE Zutat_ID
WHEN 42 THEN 7
WHEN 75 THEN 8
WHEN 8 THEN 9
WHEN ...
END WHERE Zutat_ID IN (42,75,8,...)