我有PHP数组的数据。 现在,我正在使用这样的循环:
$updArray = array(1=>11,2=>12,3=>13);
foreach($updArray as $id=>$value)
{
$query = "UPDATE table1 SET column1='$value' WHERE cart_id = '$id'";
mysql_query($query,$link);
}
我认为,如果数组包含数千行,那么它会很慢。 有没有办法更新MySQL表(从数组中应用我的数据)没有循环并更新每一行?
答案 0 :(得分:0)
您可以尝试使用CASE语句构建单个更新,如下所示:
UPDATE table1
SET column1 = CASE
WHEN cart_id = 1 THEN 11
WHEN cart_id = 2 THEN 12
...
ELSE cart_id = cart_id
END
答案 1 :(得分:0)
INSERT INTO students
(id, score1, score2)
VALUES
(1, 5, 8),
(2, 10, 8),
(3, 8, 3),
(4, 10, 7)
ON DUPLICATE KEY UPDATE
score1 = VALUES(score1),
score2 = VALUES(score2);