---
title: "Ta bort dubletter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/157604-ta-bort-dubletter"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "oskars"
published: "2007-02-27T08:58:07.000Z"
updated: "2007-02-27T09:28:12.000Z"
replies: 12
views: 681
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/157604-ta-bort-dubletter"
---

# Ta bort dubletter

## #1 — oskars, 2007-02-27T08:58Z

Hej på er!

Ja, jag har sökt på forumet... och har hittat flertalet trådar om **hur man tar bort dubletter**... Men behöver ett eget exempel för att förstår :/

Jag har en tabell (**minTabell**) som innehåller tusentals poster.

Jag vill:

- Ta bort alla dubletter: Där fälten **strNamn**  och **strEfternamn**  är likadana i dom båda posterna (ska kunna gå att ändra om jag behöver dock).
- Och detta vill jag enbart göra t.ex på dom där **ID \> 100**
- Det vore även bra om man först kunde få en lista över dom som är dubletter innan man tar bort dom... så man får lite koll....

 

Vore så tacksam för hjälp för jag har lite panik här :(

Jag kör **MySQL**!

  :stud 

Oskar

Permalänk: https://www.webforum.nu/p/157604

## #2 — voigtann1, 2007-02-27T09:01Z

Finns särket ett bättre sätt i SQL direkt men jag hade kunnat tänka mig:
Gör en SELECT sats där du sortera efter strNamn och StrEfternamn där id \> 100
och sedan använder ASP/PHP/whatever att göra en deletesats OM förra StrNamn och StrEfternamn stämmer överens med nuvarande för- och efternamn.

Permalänk: https://www.webforum.nu/p/1940885

## #3 — oskars, 2007-02-27T09:02Z

Hm, jo så kan man ju göra! Eller nej det går ju inte.... för dubletterna behöer ju inte ligga precis under varandra! 

hur menar du med "i SQL direkt"? Jag kör EMS MySQL Manager!

Permalänk: https://www.webforum.nu/p/1940886

## #4 — voigtann1, 2007-02-27T09:03Z

vad jag menar är att man kan särket lösa problemet direkt med hjälp av en SQL sträng / i programvaran. Men detta har jag ingen koll på.

Permalänk: https://www.webforum.nu/p/1940887

## #5 — oskars, 2007-02-27T09:06Z

Okej! Inte jag heller!   :birp

Permalänk: https://www.webforum.nu/p/1940889

## #6 — @nders, 2007-02-27T09:07Z

> Hm, jo så kan man ju göra! Eller nej det går ju inte.... för dubletterna behöer ju inte ligga precis under varandra!

Det kan de väl göra? Det beror ju på hur du sorterar i order by i din sql-fråga...

Permalänk: https://www.webforum.nu/p/1940890

## #7 — oskars, 2007-02-27T09:08Z

@nders... .... ... du har rätt...  . ....  är det här bästa lösningen tror du?

Men hur kollar jag om "den förra posten" är lika med den nya posten?

Förstår itne hur jag ska spara dom i olika variablar... eller.. kanske är för stressad för att tänk klart

Permalänk: https://www.webforum.nu/p/1940892

## #8 — @nders, 2007-02-27T09:17Z

det går absolut att lösa med ren sql, annars kan man ju om man vill lösa det i asp göra det, genom att jämföra lite variabler. typ:

```
sFirstName = ""
sLastName = ""
while not foo.eof
     if foo("firstname") = sFirstName and foo("lastname") = sLastName then
           ' samma som förra, för böveln, radera denna!
     end if
     sFirstName = foo("firstname")
     sLastName = foo("lastname")
     ...
     foo.movenext
wend
```

enkelt beskrivet...

Permalänk: https://www.webforum.nu/p/1940895

## #9 — oskars, 2007-02-27T09:21Z

Du @nders! Tack!!!!

jävlar vad bra!

nu har jag gjort så att där du skrivit "för bövelen" så skriver jag istället ut dubletten... då kan man väl säga att scriptet skriver ut dubletten, medan det samtidigt finns ett "orginal" som inte visas i listan?

Permalänk: https://www.webforum.nu/p/1940896

## #10 — voigtann1, 2007-02-27T09:25Z

precis...

```
sFirstName = ""
sLastName = ""
while not foo.eof
     if foo("firstname") = sFirstName and foo("lastname") = sLastName then
       response.write foo("firstname") & " " foo("lastname")  & " idnummer <strong>" & foo("id") "</strong> är en dublett"
       'SQL För att radera dubellet(rekomendera ID nummer då om du använder dig av firstname eller lastname så tar du bort alla poster ;)
     end if
     sFirstName = foo("firstname")
     sLastName = foo("lastname")
     ...
     foo.movenext
wend
```

Permalänk: https://www.webforum.nu/p/1940897

## #11 — oskars, 2007-02-27T09:26Z

> **voigtann1 skrev:**
>
> precis...
>
>
> ```
> sFirstName = ""
> sLastName = ""
> while not foo.eof
>      if foo("firstname") = sFirstName and foo("lastname") = sLastName then
>        response.write foo("firstname") & " " foo("lastname")  & " är en dublett"
>        'SQL För att radera dubellet(rekomendera ID nummer då om du använder dig av firstname eller lastname så tar du bort alla poster ;)
>      end if
>      sFirstName = foo("firstname")
>      sLastName = foo("lastname")
>      ...
>      foo.movenext
> wend
> ```

"rekomendera ID nummer då om du använder dig av firstname eller lastname så tar du bort alla poster ;)"

Menar du att jag ska DELETE FROM minTabell WHERE ID = RecSet("ID") eller något annat? :D

Permalänk: https://www.webforum.nu/p/1940898

## #12 — voigtann1, 2007-02-27T09:26Z

precis.

Permalänk: https://www.webforum.nu/p/1940899

## #13 — oskars, 2007-02-27T09:28Z

\*dansar\* Ni är så snälla!

Permalänk: https://www.webforum.nu/p/1940900

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/157604-ta-bort-dubletter
