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

Forespørgsel for at finde dubletterne mellem navn og nummer i tabellen

Opdateret spørgsmål

"Få dublet på både nummer og navn" ... "navn og nummer som anden kolonne"
Rækker kan tælles to gange her!

SELECT lower(name), NULL AS number, count(*) AS ct
FROM   tbl
GROUP  BY lower(name)
HAVING count(*) > 1

UNION  ALL
SELECT NULL, number, count(*) AS ct
FROM   tbl
GROUP  BY number
HAVING count(*) > 1;

-> sqlfiddle

Oprindeligt spørgsmål

Problemet er, at forespørgslen grupperes efter

GROUP  BY lower(name), number

Da række 3 og 4 har en forskel number , de er ikke de samme for denne forespørgsel.

Hvis du vil ignorere forskellige tal for denne forespørgsel, kan du prøve noget som:

SELECT lower(name)
     , count(*) AS ct
FROM   tbl
GROUP  BY lower(name)
HAVING count(*) > 1;


  1. Opbygning af sikker offentlig API med PHP/MYSQL

  2. Rows_sent:12 Rows_examined:549024 - hvordan optimerer man mySQL-forespørgslen?

  3. Datokonvertering og kultur:Forskellen mellem DATE og DATETIME

  4. Hvordan kontrollerer man, om en MySQL-forespørgsel ved hjælp af den ældre API var vellykket?