MySQL: обновить запись, при дублировании ключа оставить НОВЫЙ и удалить СТАРЫЙ? Посмотреть внутри

Это стол:

CREATE TABLE `mytable` (
`user_id` INT(10) UNSIGNED NOT NULL,
`thing_id` VARCHAR(100) NOT NULL DEFAULT '',
`lock_date` DATETIME NOT NULL,
`lock_id` VARCHAR(36) NOT NULL,
PRIMARY KEY (`user_id`,`thing_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

и некоторые значения там:

INSERT INTO mytable(user_id,thing_id,lock_date,lock_id)
VALUES
(51082,'299ac9ff-2b2b-102d-8ff6-f64c971398c3','2012-03-16 00:39:12','ec7b2008-6ede-11e1-aac2-5924aae99221'),
(108325,'299ac9ff-2b2b-102d-8ff6-f64c971398c3','2013-02-05 19:30:03','7c6de986-6edd-11e1-aac2-5924aae99221'),
(108325,'d90b354d-4b5f-11e0-9959-47117d41cf4b','2012-03-16 00:47:41','1c243032-6ee0-11e1-aac2-5924aae99221');

Я хочу делегировать все записи user_id = 108325 пользователю user_id = 51082, и если оба пользователя имеют одинаковое поле thing_id, оставьте только более новое (lock_date1 > lock_date2), чтобы у меня был следующий результат:

51082,'299ac9ff-2b2b-102d-8ff6-f64c971398c3','2013-02-05 19:30:03','7c6de986-6edd-11e1-aac2-5924aae99221'
108325,'d90b354d-4b5f-11e0-9959-47117d41cf4b','2012-03-16 00:47:41','1c243032-6ee0-11e1-aac2-5924aae99221'

Обратите внимание, что 51082 теперь имеет более новую запись: lock_date = '2013-02-05 19:30:03' вместо '2012-03-16 00:39:12'.

Итак, как я могу обновить строку и при дублировании ключа оставить более новую (по какому-то определенному полю)?

Спасибо!


person No Way    schedule 16.02.2013    source источник
comment
Используйте 1_   -  person Refugnic Eternium    schedule 16.02.2013