Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Базы данных » MySQL » Составление запроса...
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
MarKer
Модератор
Средний рейтинг: 4.67 | Оценок: 15
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2002
Место проживания:
Публикаций: 470
Статус: MarKer в оф-лайне
Составление запроса... [сообщение #62447]

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

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

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

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

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

Сообщение было отредактировано MarKer 09-03-2004 в 22:18

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 09-03-2004 22:11
Нажмите сюда для просмотра профайла MarKer Отправить Персональное сообщение MarKer Найти сообщения от MarKer Добавить MarKer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #62458]

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

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 09-03-2004 23:43
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 13:55.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.00737309 seconds (38.39% PHP - 61.61% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.