我必须一次更新数百条记录,并且我想知道是否可以使用一个mysqli_query
来更新所有记录。我知道不可能使用类似的东西:
UPDATE table SET col=value1,col=value2,col=value3 WHERE id IN (1,2,3)
是否有可能以某种方式使用自定义函数或其他方法一次更新多个记录?
答案 0 :(得分:1)
使用mysqli_multi_query()
函数,通过该函数可以连接所有查询并将其传递给mysqli_multi_query
函数
答案 1 :(得分:0)
答案是是!您可以通过一个文件在一个过程中完成。
<?php
$connection=mysqli_connect("YourHost","UserName","Password","YourDatabase");
if(mysqli_connect_errno()){
echo "Error".mysqli_connect_error();
}
mysqli_query($connection,"UPDATE table SET col='value1' WHERE id='1'");
mysqli_query($connection,"UPDATE table SET col='value2' WHERE id='2'");
mysqli_query($connection,"UPDATE table SET col='value2' WHERE id='3'");
?>
您可以使用 WHERE
自定义和选择要根据特定条件更新的行答案 2 :(得分:0)
如果我正确理解你想根据不同的条件用不同的数据更新你的列,那么:
col = value1 WHERE id = 1
col = value2 WHERE id = 2
col = value3 WHERE id = 3
等...
如果我误解了就停在这里。
我会遍历PHP中的数据并执行多个查询,但如果您坚持在一个查询中执行此操作,则可以使用嵌套的IF语句执行以下操作。
$query = "UPDATE table
SET col =
IF(
id IN (1),value1,
IF(id IN (2),value2,
IF id IN (3),value3,NULL)
)
WHERE id IN (1,2,3)"
如果您有大量条件,那么我会坚持使用PHP中的多个查询。 MySQL可以同时处理几百个查询,所以我真的不担心这个问题。