Давайте представим, что у нас есть таблица предметов ...
table: items
item_id INT PRIMARY AUTO_INCREMENT
title VARCHAR(255)
views INT
Давайте представим, что оно заполнено чем-то вроде
(1, item-1, 10),
(2, item-2, 10),
(3, item-3, 15)
Я хочу сделать мульти обновление представления для этих элементов из данных, взятых из этого массива [item_id] => [views]
'1' => '50',
'2' => '60',
'3' => '70',
'5' => '10'
Внимание! Обратите внимание, что у нас item_id = 5 в массиве, но у нас нет item_id = 5 в базе данных.
Я могу использовать INSERT ... ON DUPLICATE KEY UPDATE , но таким образом image_id = 5 будет вставлен в элементы talbe. Как избежать вставки нового ключа? Я просто хочу, чтобы item_id = 5 был пропущен, потому что его нет в таблице.
Конечно, перед выполнением я могу выбрать существующие ключи из таблицы предметов; затем сравните с ключами в массиве; удалите несуществующие ключи и выполните INSERT ... ON DUPLICATE KEY UPDATE . Но, может быть, есть более элегантные решения?
Спасибо.