powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ну очень сложный вопрос на удаление. Помогите!
10 сообщений из 10, страница 1 из 1
Ну очень сложный вопрос на удаление. Помогите!
    #39259188
Юрий_22yd77s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, господа эскуэльщики!

Не поможете помощь? Тут есть таблица такая:

Код: sql
1.
2.
3.
CREATE TABLE IF NOT EXISTS `table` ( `id` int(11), `name` varchar(20) );

INSERT INTO `table` (`id`, `name`) VALUES (5, 'qwer'), (2, 'qwer'), (2, 'asdf'), (1, 'qwer'), (1, 'qwer'), (4, 'asdf');



Необходимо удалить из таблицы дубликаты name кроме тех у которых минимальный id. В общем, в таблице поле удаления должны остаться следующие записи:

Код: sql
1.
2.
3.
id name
1 'qwer'
2 'asdf'
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259210
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложный? Элементарный. Группирующий подзапрос в условиях отбора. WHERE ID NOT IN (...)
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259222
Юрий_22yd77s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
DELETE FROM `table` WHERE id NOT IN (SELECT MIN(id) FROM `table` GROUP BY name)



При таком удалении останется:

Код: sql
1.
2.
3.
4.
id name
1 qwer
2 qwer
2 asdf
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259223
Юрий_22yd77s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, Что Вы имели в виду?
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259229
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий_22yd77s
Код: sql
1.
DELETE FROM `table` WHERE id NOT IN (SELECT MIN(id) FROM `table` GROUP BY name)



А в какой версии у вас этот запрос не приводит к ошибке?

http://dev.mysql.com/doc/refman/5.7/en/delete.html
You cannot delete from a table and select from the same table in a subquery.
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259232
Юрий_22yd77s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
retvizan, в MS QSL Server этот запрос выполняется. Так как выполнить удаление то?
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259241
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий_22yd77s,

спросить в соответствующем разделе
в mysql одним запросом не сделать (только если это не вызов процедуры)
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259251
Юрий_22yd77s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
DELETE t0 FROM `table` t0 LEFT JOIN (SELECT MIN(id) as id, name FROM `table` GROUP BY name) t1 USING(id, name) WHERE t1.id IS NULL
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259252
Юрий_22yd77s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но остаются дубликаты с минимальными id. Их тоже нужно как-то почистить. Не могу пока понять как.
...
Рейтинг: 0 / 0
Ну очень сложный вопрос на удаление. Помогите!
    #39259350
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И никто не сможет понять - неизвестно, по какому критерию отбирать одну зпись из двух с равным ID.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ну очень сложный вопрос на удаление. Помогите!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]