Мне нужно выполнить следующий запрос, но будет использовать подготовленный оператор. Обратите внимание, что количество предложений WHERE будет изменяться в зависимости от данных, отправляемых на сервер.UPDATE-запрос с использованием подготовленной инструкции с несколькими условиями WHERE
UPDATE bla SET x=123
WHERE (y=4 AND z=3)
OR (y=12 AND z=13)
OR (y=13 AND z=13)
OR (y=25 AND z=23)
OR (y=37 AND z=33)
OR (y=39 AND z=13)
OR (y=44 AND z=23)
OR (y=54 AND z=33)
OR (y=84 AND z=23)
OR (y=94 AND z=23)
OR (y=99 AND z=33);
Я мог бы произвести одно из следующих массивов:
$arr=[12,13,13,13,25,23,27,33,39,13,44,23,54,33,83,23,94,23,99,33];
или
$arr=[[12,13],[13,13],[25,23],[37,33],[39,13],[44,23],[54,33],[84,23],[94,23],[99,33]];
было бы лучше сделать это с помощью одного запроса UPDATE, или 10 UPDATE запросов для каждого пара?
Если один запрос, какой был бы лучший способ сделать это?
Спасибо за использование tubles, и PHP, а также. – user1032531
На самом деле, я все еще хочу использовать подготовленный оператор, поэтому я просто буду генерировать '(?,?)' И развязать их с помощью ',', правильно? А затем используйте мой второй пример массива? – user1032531
Да. См. Http://stackoverflow.com/questions/33702794/best-multiinsert-way-to-add-database-in-php/33702893#33702893 для чего-то подобного. Это делает «INSERT», но общая идея такая же. – Barmar