Мысли на тему массового UPDATE в MySQL
Оказывается, это возможно!
[-]
View Code MySQL
INSERT INTO `table` (`a`, `b`, `c`) VALUES
(1, 2, 3), (4, 5, 6), (7, 8, 9)
ON DUPLICATE KEY UPDATE `b`=VALUES(`b`), `c`=VALUES(`c`);
(1, 2, 3), (4, 5, 6), (7, 8, 9)
ON DUPLICATE KEY UPDATE `b`=VALUES(`b`), `c`=VALUES(`c`);
Например, для WordPress (при условии, что пара (user_id, meta_key) является уникальным ключом):
[-]
View Code MySQL
INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES
(1, 'key1', 'value1'),
(1, 'key2', 'value2'),
(1, 'key3', 'value3'),
(1, 'key4', 'value4'),
(1, 'key5', 'value5')
ON DUPLICATE KEY UPDATE `meta_value`=VALUES(`meta_value`);
(1, 'key1', 'value1'),
(1, 'key2', 'value2'),
(1, 'key3', 'value3'),
(1, 'key4', 'value4'),
(1, 'key5', 'value5')
ON DUPLICATE KEY UPDATE `meta_value`=VALUES(`meta_value`);
18
Янв
2009
Янв
2009
Комментарии к статье «Мысли на тему массового UPDATE в MySQL» (6) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Мысли на тему массового UPDATE в MySQL»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Для множественного апдейта есть и такой способ:
table
SET
field = ELT(FIELD(id, $sIdList), $sValueList)
WHERE
id IN ($sIdList)
красиво, но, вроде как, работает медленней.
…что пара (user_id, meta_key) является уникальным ключом…, а что означает пара является уникальным ключом?
То, что все значения пары (
user_id,meta_key) уникальны.Спасибо. Вообщем-то я догадывался, что просто не совсем корректно написано. Но надежда была на то, что есть этакий уникальный «парный» ключ
Отличное решение с UPDATE. Благодарю, сильно выручил