2013-01-16 14 views

risposta

3

Prova questa

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

ricreare quella tavola:

RENAME TABLE `testTable` TO `testTable2`; 

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

O Aggiungi UNIQUE INDEX sul campo.

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

grazie, ma non voglio applicare indice univoco. Voglio solo eseguire una query che dovrebbe rimuovere le righe duplicate. – sureyn

+0

@sureyn: ma se non si applica una chiave univoca, si ripresenterà lo stesso problema. È meglio prevenire questa situazione piuttosto che ripulire costantemente. –

+0

@a_horse_with_no_name: sei corretto ma la mia preoccupazione è quella di eseguire la query di eliminazione per rimuovere le righe duplicate tranne un record. A proposito il mio problema è risolto e molte grazie per il vostro aiuto. – sureyn

Problemi correlati