Update multiple rows with known keys without inserting new rows if nonexistent keys are found

Posted by Kirzilla on Stack Overflow See other posts from Stack Overflow or by Kirzilla
Published on 2010-04-05T15:51:33Z Indexed on 2010/04/05 15:53 UTC
Read the original article Hit count: 562

Filed under:
|
|

Hello,

Let's imagine that we have table items...

table: items
item_id INT PRIMARY AUTO_INCREMENT
title VARCHAR(255)
views INT

Let's imagine that it is filled with something like

(1, item-1, 10),
(2, item-2, 10),
(3, item-3, 15)

I want to make multi update view for this items from data taken from this array [item_id] => [views]

'1' => '50',
'2' => '60',
'3' => '70',
'5' => '10'

IMPORTANT! Please note that we have item_id=5 in array, but we don't have item_id=5 in database.

I can use INSERT ... ON DUPLICATE KEY UPDATE, but this way image_id=5 will be inserted into talbe items. How to avoid inserting new key? I just want item_id=5 be skipped because it is not in table.

Of course, before execution I can select existing keys from items table; then compare with keys in array; delete nonexistent keys and perform INSERT ... ON DUPLICATE KEY UPDATE. But maybe there is some more elegant solutions?

Thank you.

© Stack Overflow or respective owner

Related posts about mysql

Related posts about update