sql >> Database teknologi >  >> RDS >> Mysql

Find rækker med dublerede/lignende kolonneværdier MySQL

Jeg har genlæst dit indledende spørgsmål, og jeg har fundet følgende 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 er lidt overkompliceret, men det virker og leverer præcis, hvad du bad om :)



  1. Vil du oprette forbindelse til DB fra en Chrome-udvidelse?

  2. Hvad betyder tegnsæt og sortering præcist?

  3. Forbinder SQL Server til PostgreSQL

  4. Output SQLite-forespørgselsresultater som en INSERT-sætning