Разбить записи на 3 части одним апдейтом

Статус
В этой теме нельзя размещать новые ответы.

svfolder

Постоялец
Регистрация
31 Июл 2013
Сообщения
159
Реакции
156
Имеется такая таблица в мускуле.

Код:
CREATE TABLE `md_process` (
  `id` int(11) NOT NULL,
  `url` varchar(255) default NULL,
  `process` int(11) default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Допустим в ней хранится 5-10-30 или более млн записей.

Задача разделить записи на три части и каждой записи в соответствии из группы 1,2 или 3 присвоить полю process нужное число.
И сделать это одним запросом UPDATE

Не перебирать в цикле 50 млн записей и счетчиком считая до 3х сделать 50 млн апдейтов) а одним апдейтом!
 
Код:
UPDATE md_process SET process = (id % 3)   + 1;
 
Код:
UPDATE md_process SET process = (id % 3)   + 1;
разбиение будет точным, только в том случае если ID идет последовательно и непрерывно. Если будет в ID разрыв в нумерации то БД поделится неровно
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху