Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаление дублирующихся строк с одинавковыми полями
 
 автор: maxfade   (23.06.2009 в 10:30)   письмо автору
 
 

Добрый день.

Столкнулся с проблемой удаление дублирующихся строк.

Необходимо удалить из одной таблицы строки в которых поле phone одинаковое.
Пробовал и с Group BY и с Distinct, ничего путного не получилось, либо руки кривые :)

Сделать необходимо одним запросом.

Пример:
id | phone |
1 | 1234567 |
2 | 1234567 |
3 | 2584512 |
4 | 5698543 |
5 | 1234567 |

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

Имеем три одинаковые строки с полем phone = 1234567, необходимо оставить из трех только строку в которой id = 1, т.е. минимальный:

Пример:
id | phone |
1 | 1234567 |
3 | 2584512 |
4 | 5698543 |

Заранее спасибо.

  Ответить  
 
 автор: mihdan   (23.06.2009 в 11:20)   письмо автору
 
   для: maxfade   (23.06.2009 в 10:30)
 

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=9121
http://www.mojbred.com/706.html

  Ответить  
 
 автор: maxfade   (23.06.2009 в 11:58)   письмо автору
 
   для: mihdan   (23.06.2009 в 11:20)
 

Это все хорошо, но как сделать чтобы при выборке были только значения уникальные и с повтором, но id у них был минимальным....

  Ответить  
 
 автор: Valick   (23.06.2009 в 12:17)   письмо автору
 
   для: maxfade   (23.06.2009 в 11:58)
 

если не ошибаюсь, группировка по полю phone и функция MIN(id)

SELECT MIN(id),phone FROM `table` GROUP BY phone

  Ответить  
 
 автор: maxfade   (23.06.2009 в 12:57)   письмо автору
 
   для: Valick   (23.06.2009 в 12:17)
 

Ага спасибо, уже сделал:

Вставил результат в новую таблицу, потом сделал замену:
INSERT INTO table_filter (id, phone) SELECT min(id) as id, phone  FROM table GROUP BY phone ORDER BY id

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования