|
|
|
| как удалить? каким должен быть запрос? | |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 22:05)
| | А структура таблицы какая? Повторяющиеся записи можно вычислить по одному полю или сравнению подвергаются несколько полей? В общем нужно больше подробностей. | |
|
|
|
|
|
|
|
для: cheops
(01.02.2011 в 13:46)
| | по одному полю только | |
|
|
|
|
|
|
|
для: technic611
(01.02.2011 в 22:05)
| | Самый простой вариант, это создать паралелльную таблицу при помощи запроса INSERT ... SELECT ... с уникальными значениями. Удалить старую таблицу, а новой назначить имя старой. В качестве SELECT-запроса можно использовать что-то вроде
SELECT * FROM tbl
GROUP BY fld
|
где fld - имя поля, которое должно быть уникальным. | |
|
|
|
|
|
|
|
для: cheops
(01.02.2011 в 22:19)
| | хм..этоже сколько запросов сразу к базе ужас. есть другие способы? | |
|
|
|
|
|
|
|
для: technic611
(03.02.2011 в 12:03)
| | Если операция частая, то можно подготовить хранимую процедуру, которая вычисляет одинаковые поля
SELECT fld, COUNT( fld ) AS total
FROM test
GROUP BY fld
HAVING total >1
|
И удаляет записи с LIMIT total - 1 (помню где-то на форуме была такая - найти не могу). | |
|
|
|