Обновление нескольких записей MySQL с использованием одного вызова mysqli_query в PHP

Я должен обновить сотни записей сразу, и мне интересно, можно ли использовать один вызов mysqli_query для обновления всех из них. Я знаю, что нельзя использовать что-то вроде:

 UPDATE table SET col=value1,col=value2,col=value3 WHERE id IN (1,2,3) 

Возможно ли каким-то образом использовать пользовательские функции или другой метод для одновременного обновления нескольких записей?

используйте mysqli_multi_query() , с помощью которой вы можете выполнить все запросы и передать ей функцию mysqli_multi_query

Ответ: Да ! Вы можете сделать это в одном процессе через один файл.

 <?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'"); ?> 

Вы можете настроить и выбрать строки, которые вы хотите обновить, с определенными условиями, используя ГДЕ

Если я правильно понимаю, вы хотите обновить свои столбцы разными данными на основе разных условий, так что:

 col = value1 WHERE id = 1 col = value2 WHERE id = 2 col = value3 WHERE id = 3 

и т.д…

Если здесь неверно истолкован ive.

Я бы перебирал данные на 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 может обрабатывать несколько сотен запросов одновременно, поэтому я действительно не стал бы беспокоиться об этом фронте.