Множественный UPDATE

Invizz

Новичок
Множественный UPDATE

В движке есть класс Options. он содержит в себе несколько методов, типа, get, delete, set, add.

Есть таблица `options`.

[sql]
CREATE TABLE `options` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL default '',
`value` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
[/sql]

Опции постоянно дёргаются и обновляются, до 20 раз за выполнение скрипта. Поэтому я решил сделать так:
При создании экземпляра класса, я выбираю все опции, сохраняю в массив. Работаю с этим массивом.Если удалить опцию - я удаляю из массива и заношу ее в массив to_delete. А по выгрузке скрипта я за раз удаляю все удаленные опции:

PHP:
		if (count($this->to_delete)) {
			$names = implode(',', $this->to_delete));
			$DB->query("DELETE FROM `options` WHERE `name` IN ($names)";
		}
Аналогично я поступаю и с добавлением. А есть ли у UPDATE синтаксис, чтобы обновить несколько рядов сразу при разном ID?

что нибудь типа

[sql]
UPDATE `options`
SET value IN ('val1', 'val2', 'val3')
WHERE name IN ('name1', 'name2', 'name3');
[/sql]

Зачем? Чтобы не дергать базу при каждом обновлении опций, а сделать все за один раз.
 

SaNeK

Новичок
Invizz
Не совсем, конечно, хорошо, но, может делать UPDATE в цикле?
 

Андрейка

Senior pomidor developer
Invizz
весь синтаксис UPDATE есть на странице мануала повсященной этой теме..
 

Invizz

Новичок
Андрейка
MySQL'ный ман - не самый лучший, там без поллитры не разберешься и обычно не всё описано... и кроме того есть еще всякие ходы и техники, которые обычно в мане не описаны. Именно поэтому и спрашиваю =)
 

baev

‹°°¬•
Команда форума
Автор оригинала: Invizz

MySQL'ный ман - не самый лучший, там без поллитры не разберешься и обычно не всё описано...
угу
другими словами: «в MySQL разбираются только алкоголики и телепаты»

Invizz, Вам не кажется, что Вы хамите?
Причём, хамите тем, от кого ждёте ответа?
 

alexhemp

Новичок
Invizz

А вы читать мануал пробовали? В разделе посвященному UPDATE все написано, никаких особых "техник" нет.
 

Invizz

Новичок
alexhemp
ну это все, о чем спрашивалось, спасибо.

baev
где?! я!? не кажется, я не хамлю, а объясняю.
 
Сверху