FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Jag har en tabell i MySQL som bl.a. innehåller en kolumn med efternamn och en med förnamn. Nu vill jag plocka ut de rader där för- och efternamn är identiska. Alltså inte om förnamnet är identiskt med efternamnet, utan om t.ex. Erik Eriksson förekommer på flera rader.
Provade först att hämta hela tabellen (sorterad förstås) och sedan med php testa varje rad och se om för- och efternamnet var identiskt med föregående rad. Men måste man verkligen hämta hela tabellen till php? Finns det inget bra sätt att låta MySQL göra jobbet direkt? Någon slags motsvarighet till DISTINCT som tar ut dubletter istället - finns det? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Having borde väl funka:
Kod:
select first_name, last_name, count(*) as cnt from table group by first_name, last_name having cnt > 1 Kod:
select distinct t1.first_name, t1.last_name from table t1, table t2 where t1.id != t2.id and t1.first_name = t2.first_name and t1.last_name = t2.last_name |
||
![]() |
![]() |
Svara |
|
|