Форум сетевых администраторов
Показаны 2 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Составление запроса... (http://netadmin.ws/forum/showthread.php?threadid=8092)


Помещено MarKer 09-03-2004 в 22:11:

Составление запроса...

Ситуация такая. Есть таблица с такой структурой:
id|name
---------
1|Вася
2|Тася
3|Мася
4|Вася

Задача: необходимо вычистить таблицу, чтобы остались только уникальные значения в столбце "name" (т.е. небыло двух "Вась", например).

Условия: из двух (или более) совпадающих записей должна оставаться та, которая имеет наибольший id (т.е. в случае с "Васями", при удалении дубликатов должна быть удалена запись с id == 1, а не id == 4.

Проблема быть может чепуховая, но очень базовое знание SQL не позволяет мне разрешить сею задачу

Если сразу, одним запросом вычистить все невозможно, то как бы хотя бы модифицировать запрос типа SELECT DISTINCT(`name`) FROM `table` ..., чтобы он помимо уникальных имен выдавал ещё и соответствующие им id`ы, иначе как узнать какие записи удалять, а какие оставить


Помещено RaZEr 09-03-2004 в 23:43:

Лучше всего сделать DELETE перед добавлением. Но если идти на принцип, то прийдется изобретать велосипед. Что можно сделать средствами одного MySQL я смневаюсь (скорей всего прийдется использовать PHP, Perl и т.д.), но если LIMIT который допустим в DELETE позволяет использовать запись "LIMIT 1,-1" то ты можешь написать: DELETE FROM mytbl ORDER BY name,id DESC LIMIT 1,-1

__________________
The time was broken ...


Формат времени GMT. Текущее время 14:30.
Показаны 2 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.