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

Форум MySQL

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

 

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

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

тема: удаление одинаковых записей.
 
 автор: technic611   (31.01.2011 в 22:05)   письмо автору
 
 

как удалить? каким должен быть запрос?

  Ответить  
 
 автор: cheops   (01.02.2011 в 13:46)   письмо автору
 
   для: technic611   (31.01.2011 в 22:05)
 

А структура таблицы какая? Повторяющиеся записи можно вычислить по одному полю или сравнению подвергаются несколько полей? В общем нужно больше подробностей.

  Ответить  
 
 автор: technic611   (01.02.2011 в 22:05)   письмо автору
 
   для: cheops   (01.02.2011 в 13:46)
 

по одному полю только

  Ответить  
 
 автор: cheops   (01.02.2011 в 22:19)   письмо автору
 
   для: technic611   (01.02.2011 в 22:05)
 

Самый простой вариант, это создать паралелльную таблицу при помощи запроса INSERT ... SELECT ... с уникальными значениями. Удалить старую таблицу, а новой назначить имя старой. В качестве SELECT-запроса можно использовать что-то вроде
SELECT * FROM tbl
GROUP BY fld

где fld - имя поля, которое должно быть уникальным.

  Ответить  
 
 автор: technic611   (03.02.2011 в 12:03)   письмо автору
 
   для: cheops   (01.02.2011 в 22:19)
 

хм..этоже сколько запросов сразу к базе ужас. есть другие способы?

  Ответить  
 
 автор: cheops   (03.02.2011 в 12:20)   письмо автору
 
   для: technic611   (03.02.2011 в 12:03)
 

Если операция частая, то можно подготовить хранимую процедуру, которая вычисляет одинаковые поля
SELECT fld, COUNT( fld ) AS total
FROM test
GROUP BY fld
HAVING total >1

И удаляет записи с LIMIT total - 1 (помню где-то на форуме была такая - найти не могу).

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

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