sql >> Databasteknik >  >> RDS >> Mysql

Hitta rader med dubbletter/liknande kolumnvärden MySQL

Jag har läst din första fråga igen och jag har kommit fram till följande lösning:

SELECT *
FROM   users
WHERE  id IN
       (SELECT id
       FROM    users t4
               INNER JOIN
                       (SELECT  soundex(fname) AS snd,
                                COUNT(*)       AS cnt
                       FROM     users          AS t5
                       GROUP BY snd
                       HAVING   cnt > 1
                       )
                       AS t6
               ON      soundex(t4.fname)=snd
       )
AND    id NOT IN
       (SELECT  MIN(t2.id) AS wanted
       FROM     users t2
                INNER JOIN
                         (SELECT  soundex(fname) AS snd,
                                  COUNT(*)       AS cnt
                         FROM     users          AS t1
                         GROUP BY snd
                         HAVING   cnt > 1
                         )
                         AS t3
                ON       soundex(t2.fname)=snd
       GROUP BY snd
       );

Det är lite överkomplicerat, men det fungerar och levererar precis det du bad om :)



  1. Säker TO_NUMBER()

  2. Infoga/Uppdatera slumpmässigt datum i MySQL

  3. Generera en uppsättning eller sekvens utan loopar – del 2

  4. datagrip Kan inte tillämpa ändringar Denna tabell är skrivskyddad. Cellredigeringsändringar kan inte tillämpas