webForumDet fria alternativet

Radera vissa dubletter?

5 svar · 477 visningar · startad av Travoni

TravoniMedlem sedan okt. 20041 556 inlägg
#1

Hel igen.
Jag skulle vilja radera de dubletter som består av två lika ord. ex.

Pelle
Olle
Kalle
Kalle Olsson
Åsa
Bertil
Kalle Olsson
Berit
Berit

Alltså i detta fall så vill jag att Kalle Olsson skall plockas bort men inte "enords-dubletterna" hur gör jag det?

#Listar alla dubletter
select min(id),[B]sname[/B],spost from tbl group by [B]sname[/B]

#Tänkte mig något åt detta håll
and instr([B]sname[/B],' ')>0 GROUP BY [B]sname[/B]

...står still.

HamatzuMedlem sedan mars 2005232 inlägg
#2

Vill du ha kvar en så att det inte blir en dublett, eller vill du ta bort alla som heter Kalle Olsson helt?

TravoniMedlem sedan okt. 20041 556 inlägg
#3

Nej jag vill spara en "Kalle Olsson".

emissionMedlem sedan dec. 19996 721 inlägg
#4
DELETE FROM tblgroup WHERE id NOT IN (SELECT MAX(id) FROM tblgroup group by sname) AND sname LIKE '% %'
TravoniMedlem sedan okt. 20041 556 inlägg
#5

Ok, jag testade den emission med en select först för att se att resultatet blir det jag vill, men det tar en evinnerig tid och sedan så händer ingenting...

select id,sname,spost FROM tblgroup ...osv

Det är ca 25000 poster den skall kolla i, jag tycker det iofs inte är så många. Vad skall jag ta mig till?

emissionMedlem sedan dec. 19996 721 inlägg
#6

Har du definierat id som primärnyckel?

Sökningen är korrekt och borde inte ta särskilt lång tid, om databasen mår bra.

Hur testade du? Alternativet att inget händer finns inte med en SELECT.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)