sql >> Database >  >> RDS >> Mysql

Dubbele records zoeken in MySQL

Soms moet u dubbele records in MySQL vinden. Hier leest u hoe u dubbele records in een tabel kunt krijgen. U kunt het gebruiken om rijen met dubbele waarden in MySQL te krijgen

Dubbele waarden vinden in MySQL

Hier zijn de stappen om dubbele records in MySQL te krijgen. Stel dat u de volgende MySQL-tabel heeft met dubbele records.

mysql> create table dup_orders(id int, amount int);

mysql> insert into dup_orders(id,amount) values(1, 100),(1,250),(2,350),(2,350);

mysql> select * from dup_orders;
+------+--------+
| id   | amount |
+------+--------+
|    1 |    100 |
|    1 |    250 |
|    2 |    350 |
|    2 |    350 |
+------+--------+

Bonus Lezen:MySQL Voeg unieke beperking toe

Vind dubbele rijwaarden in één kolom

Hier is de SQL-query om dubbele waarden voor één kolom te vinden

SELECT 
    col, 
    COUNT(col)
FROM
    table_name
GROUP BY col
HAVING COUNT(col) > 1;

In de bovenstaande query doen we een GROUP BY voor de kolom waarvoor we duplicaten willen controleren. We gebruiken ook een COUNT() en HAVING-clausule om het aantal rijen voor elke groep te krijgen.

Bonus Lezen:MySQL Kolom hernoemen

Laten we de bovenstaande vraag toepassen op onze dup_orders tabel, om dubbele waarden te krijgen voor id kolom

mysql> select id, amount
       from dup_orders
       group by id
       having count(id)>1;
+------+--------+
| id   | amount |
+------+--------+
|    1 |    100 |
|    2 |    350 |
+------+--------+

Dubbele rijwaarden zoeken in meerdere kolommen

Hier is de SQL-query om dubbele waarden voor meerdere kolommen te vinden

SELECT 
    col1, col2,..., COUNT(*)
FROM
    table_name
GROUP BY 
    col1, 
    col2,
    ...
HAVING 
       (COUNT(col1) > 1) AND 
       (COUNT(col2) > 1) AND
       ...

In de bovenstaande query doen we een GROUP BY van alle kolommen (col1, col2 ) voor wie we duplicaten willen vinden. We gebruiken ook een COUNT() en HAVING-clausule om het aantal rijen voor elke groep te krijgen.

Bonus Lezen:Tabel dupliceren in MySQL

Laten we de bovenstaande vraag toepassen op onze dup_orders tabel, om dubbele waarden te krijgen voor id en bedrag kolom

mysql> select id, amount,count(*)
       from dup_orders
       group by id,amount
       having count(id)>1
       and count(amount)>1;
+------+--------+----------+
| id   | amount | count(*) |
+------+--------+----------+
|    2 |    350 |        2 |
+------+--------+----------+

Hopelijk kun je nu gemakkelijk dubbele records in MySQL krijgen.

Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Hoe weet ik wanneer een MySQL-tabel voor het laatst is bijgewerkt?

  2. Visuele interface van PostgreSQL vergelijkbaar met phpMyAdmin?

  3. .nextval JDBC invoegprobleem

  4. Wat is de beste manier om de minimumwaarde uit verschillende kolommen te selecteren?