2013-01-16 18 views

Odpowiedz

3

Spróbuj

DELETE FROM item WHERE GREATEST(0,@num := IF(NAME = @NAME, @num + 1, 0),LEAST(0, LENGTH(@NAME := NAME)))>0 
1

odtworzyć tę tabelę:

RENAME TABLE `testTable` TO `testTable2`; 

CREATE TABLE `testTable` 
SELECT DISTINCT `name` FROM `testTable2`; 

LUB Dodaj unikatowy indeks na swoim polu.

ALTER IGNORE TABLE `tableName` 
    ADD UNIQUE INDEX (`name`) 
+0

dziękuję, ale nie chcę stosować niepowtarzalnego indeksu. Po prostu chcę wykonać kwerendę, która powinna usunąć duplikaty wierszy. – sureyn

+0

@sureyn: ale jeśli nie zastosujesz klucza unikatowego, znowu będziesz mieć ten sam problem. Lepiej jest zapobiegać tej sytuacji, niż stale ją usuwać. –

+0

@a_horse_with_no_name: Masz rację, ale moim celem jest wykonanie kwerendy usuwania w celu usunięcia duplikatów z wyjątkiem jednego rekordu. BTW mój problem został rozwiązany i wielkie dzięki za pomoc. – sureyn

Powiązane problemy