![]() |
Har ett problem med att formulera en SQL-fråga. Jag vill få ut en lista med alla dubletter i min tabell, d.v.s. en slags "motsats" till DISTINCT.
Säg att jag har en tabell kunder som ser ut så här: Kod:
id fornamn efternamn adress telefon Jag kan komma på en fråga som denna Kod:
SELECT DISTINCT CONCAT(fornamn, " ", efternamn) AS namn, COUNT(*) AS antal FROM kunder GROUP BY namn HAVING antal > 1 Kod:
Olle Karlsson Någon som har något tips? |
Kanske inte den snyggaste lösningen:
Kod:
SELECT * FROM kunder a, kunder b WHERE CONCAT(a.fornamn, " ", a.efternamn)=CONCAT(b.fornamn, " ",b.efternamn ) AND a.id!=b.id GROUP BY a.id |
Oller, ditt förslag förstår jag inte... Det fungerar inte alls. Vad skulle följande betyda över huvud taget?
Kod:
SELECT * FROM kunder a, kunder b Kod:
SELECT DISTINCT CONCAT(fornamn, " ", efternamn) AS namn, COUNT(*) AS antal FROM kunder GROUP BY namn HAVING antal > 1 Kod:
SELECT * FROM kunder WHERE CONCAT(fornamn, " ", efternamn) = $namn Kod:
SELECT * |
Det fungerar inte bara med
Kod:
SELECT * |
Slän på GROUP_CONCAT(id) AS ids så kommer du förhoppningsvis att få namnet + en lista med namnen.
Kod:
SELECT DISTINCT CONCAT(fornamn, \" \", efternamn) AS namn, GROUP_CONCAT(id) AS ids, COUNT(*) AS antal FROM kunder GROUP BY namn HAVING antal > 1 |
WizKid, det verkar inte som om det funkar. Om det gör det tar det i alla fall längre tid än jag orkade vänta...
Grazzy, tack för ditt förslag! Jag kände inte till GROUP_CONCAT tidigare, men det var en intressant variant som absolut kan komma till användning! |
Citat:
Kod:
SELECT * FROM kunder a, kunder b Frågan funkar för mig med följande data: Kod:
mysql> select version(); |
Se upp med den begränsning i längd som finns som standard i GROUP_CONCAT. Max längd sätts om standard till 1024 tecken om man inte ändrar i inställningarna. Räcker i och för sig till en hel del dubletter men om man vill använda GROUP_CONCAT till annat så bör man var medveten om denna begränsning.
|
Alla tider är GMT +2. Klockan är nu 08:24. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson