webForumDet fria alternativet

visa rader som har dubletter (mySQL)

5 svar · 1 939 visningar · startad av fredriksk

fredrikskMedlem sedan maj 2001211 inlägg
#1

Hej.

Försöker att sammanställa en lista med rader som har dubletter av ett visst fält. Betrakta följande tabell.

bocker(id, namn, ISBN)

Nu vill jag lista alla rader (alla entiteter. Dvs id, namn och ISBN. Select * alltså) där samma ISBN förekommer mer än en gång (det har nämligen råkat bli fel och jag behöver få veta vilka böcker som lagts in två (eller fler) gånger).

Hoppas att det är någorlunda klarlagt vad jag vill åstadkomma.

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select namn, ISBN
 from bocker
 where ISBN in
  (select ISBN
      from bocker
     group by ISBN
     having count(*) > 1)
fredrikskMedlem sedan maj 2001211 inlägg
#3

Snyggt...

Nu är det så att det finns över 60000 böcker i min databas. Frågan har körts i två timmar och är ännu inte klar.

Går det att optimera denna måntro?

Engine^Medlem sedan dec. 20003 887 inlägg
#4

Optimera frågan tror jag väl knappast du har någon framgång med, men om du inte har ett index på ISBN behöver du slänga dit ett.

fredrikskMedlem sedan maj 2001211 inlägg
#5

hmm... hade missat att indexera ISBN så jag testar med det...
Det gick inte utan indexeringen iaf. Databasen krachade efter en natts körning

Återkommer med info om hur det gick när den hade indexerats

PMedlem sedan jan. 20012 204 inlägg
#6

Känns skumt att det tar 2+ timmar. Det borde det verkligen inte göra.

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