Проверьте этот пример, прежде чем читать вопрос - http://www.sqlfiddle.com/#!2/fcf3e/8
Следующие данные взяты из формы, пользователь просто удалил продукт из специального предложения.
Array(
'special_offer_id' => 1,
'product_ids' => Array(
0 => 1,
0 => 2
)
)
Изначально я хотел использовать этот запрос ...
REPLACE INTO `foo` VALUES (1, 1), (2, 1);
Но это не приведет к удалению продукта, удаленного пользователем, - только к обновлению остальных.
Так что я вынужден выполнить 2 запроса ...
DELETE FROM `foo` WHERE `special_offer_id` = 1;
INSERT INTO `foo` VALUES (1, 1), (2, 1);
Есть ли лучший способ сделать это без необходимости выполнять 2 запроса?
Пример : http://www.sqlfiddle.com/#!2/fcf3e/8