Как правильно удалить все строки с минимальным значением поля?

Задача
удалить все что не у довлетворяет условию
максимальное значение url_id
yaid = 1947831


61c97abdc433e291783632.png

Структура таблички

CREATE TABLE `kvartiri` (
  `rowNumber` double NOT NULL,
  `id` varchar(25) NOT NULL COMMENT 'Квартира в фиде',
  `url_id` int(11) NOT NULL COMMENT 'Привязка к файлу импорта',
  `yaid` int(11) NOT NULL COMMENT 'Дом в фиде',
  `rooms` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `price` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `area` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `images` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `last-update-date` varchar(10) DEFAULT NULL,
  `building-name` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `pricemetr` double DEFAULT NULL,
  `phone` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `email` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `floor` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci,
  `totalfloor` longtext CHARACTER SET utf8 COLLATE utf8_polish_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `kvartiri`
--

INSERT INTO `kvartiri` (`rowNumber`, `id`, `url_id`, `yaid`, `rooms`, `price`, `area`, `images`, `last-update-date`, `building-name`, `pricemetr`, `phone`, `email`, `floor`, `totalfloor`) VALUES
(3176, '301002057', 87, 1947831, '3', '87930040', '118.6', 'a:16:{i:0;a:2:{s:3:\"url\";s:43:\"https://6feeds.ru/donstroy/30.10.02.057.png\";s:3:\"tag\";s:4:\"plan\";}i:1;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/505872339ee212491ee1a0b16f3d854b.jpg\";}i:2;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/ea5513af9e23057b7dc35e07e0ff6180.jpg\";}i:3;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/07e14627d2f7482fec45e45c1b25a4a6.jpg\";}i:4;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/e3c6a7fedcacc7b40c9b3d404ddef075.jpg\";}i:5;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/2e998ce39b30443a7c5d9ca886be0b0d.jpg\";}i:6;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/e0217fc721cb133c25162e57a5315855.jpg\";}i:7;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/79314a321dade3b7df99068ee3371e21.jpg\";}i:8;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/b148895e929f051a5ac4fe92c18b9307.jpg\";}i:9;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/f9abc48d8d786726cf9e275b7305d44c.jpg\";}i:10;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/c46dd74f2715ecb08fa8832cb4952149.jpg\";}i:11;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/3fbe4eb29305f284478c7c1e8c37ccab.jpg\";}i:12;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/7a750ad42daf4170fd50c5fe938f593c.jpg\";}i:13;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/6228dfbe6d4a041a8f7ce0498ed25240.jpg\";}i:14;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/33ef8ecb2aca1fb903bea190c39012fb.jpg\";}i:15;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/fbc366c3b24a29ad8ad5b5e6cc748549.jpg\";}}', '27.12.2021', 'ЖК «Река»', 741400, 'a:1:{i:0;s:11:\"74950219414\";}', 'pd@disnv.ru', '9', '11'),
(3177, '301002044', 90, 1947831, '2', '58834800', '88.5', 'a:16:{i:0;a:2:{s:3:\"url\";s:43:\"https://6feeds.ru/donstroy/30.10.02.044.png\";s:3:\"tag\";s:4:\"plan\";}i:1;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/505872339ee212491ee1a0b16f3d854b.jpg\";}i:2;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/ea5513af9e23057b7dc35e07e0ff6180.jpg\";}i:3;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/07e14627d2f7482fec45e45c1b25a4a6.jpg\";}i:4;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/e3c6a7fedcacc7b40c9b3d404ddef075.jpg\";}i:5;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/2e998ce39b30443a7c5d9ca886be0b0d.jpg\";}i:6;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/e0217fc721cb133c25162e57a5315855.jpg\";}i:7;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/79314a321dade3b7df99068ee3371e21.jpg\";}i:8;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/b148895e929f051a5ac4fe92c18b9307.jpg\";}i:9;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/f9abc48d8d786726cf9e275b7305d44c.jpg\";}i:10;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/c46dd74f2715ecb08fa8832cb4952149.jpg\";}i:11;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/3fbe4eb29305f284478c7c1e8c37ccab.jpg\";}i:12;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/7a750ad42daf4170fd50c5fe938f593c.jpg\";}i:13;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/6228dfbe6d4a041a8f7ce0498ed25240.jpg\";}i:14;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/33ef8ecb2aca1fb903bea190c39012fb.jpg\";}i:15;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/fbc366c3b24a29ad8ad5b5e6cc748549.jpg\";}}', '27.12.2021', 'ЖК «Река»', 664800, 'a:1:{i:0;s:11:\"74950219414\";}', 'pd@disnv.ru', '5', '11'),
(3178, '301002132', 90, 1947831, '5', '222722560', '243.2', 'a:16:{i:0;a:2:{s:3:\"url\";s:43:\"https://6feeds.ru/donstroy/30.10.02.132.png\";s:3:\"tag\";s:4:\"plan\";}i:1;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/505872339ee212491ee1a0b16f3d854b.jpg\";}i:2;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/ea5513af9e23057b7dc35e07e0ff6180.jpg\";}i:3;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/07e14627d2f7482fec45e45c1b25a4a6.jpg\";}i:4;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/e3c6a7fedcacc7b40c9b3d404ddef075.jpg\";}i:5;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/2e998ce39b30443a7c5d9ca886be0b0d.jpg\";}i:6;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/e0217fc721cb133c25162e57a5315855.jpg\";}i:7;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/79314a321dade3b7df99068ee3371e21.jpg\";}i:8;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/b148895e929f051a5ac4fe92c18b9307.jpg\";}i:9;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/f9abc48d8d786726cf9e275b7305d44c.jpg\";}i:10;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/c46dd74f2715ecb08fa8832cb4952149.jpg\";}i:11;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/3fbe4eb29305f284478c7c1e8c37ccab.jpg\";}i:12;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/7a750ad42daf4170fd50c5fe938f593c.jpg\";}i:13;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/6228dfbe6d4a041a8f7ce0498ed25240.jpg\";}i:14;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/33ef8ecb2aca1fb903bea190c39012fb.jpg\";}i:15;a:1:{s:3:\"url\";s:69:\"https://6feeds.ru/images/uploads/fbc366c3b24a29ad8ad5b5e6cc748549.jpg\";}}', '27.12.2021', 'ЖК «Река»', 915800, 'a:1:{i:0;s:11:\"74950219414\";}', 'pd@disnv.ru', '12', '11');

--

Суть задачи удалить все дубли квартир приходящие с разных импортов, по умолчанию считаем что последний файл импорта актуальный
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
Удалить только самые старые (оставить все остальные)
DELETE t1
FROM table t1
LEFT JOIN table t2 ON t1.dup_column = t2.dup_column
                  AND t1.time_column > t2.time_column
WHERE t2.time_column IS NULL

Оставить только самые новые (удалить все остальные)
DELETE t1
FROM table t1
JOIN table t2 ON t1.dup_column = t2.dup_column
             AND t1.time_column < t2.time_column


Суть задачи удалить все дубли квартир приходящие с разных импортов, по умолчанию считаем что последний файл импорта актуальный

Создай уникальный индекс по номеру квартиры (после чистки, само собой) и используй не INSERT INTO, а REPLACE INTO.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы