Select and display only duplicate records in mysql

后端 未结 12 2084
南旧
南旧 2020-12-08 06:56

This question is pretty simple I for some reason cant get the proper result to display only the duplicate records

Table   : Paypal_ipn_orders
id                      


        
相关标签:
12条回答
  • 2020-12-08 07:43
    SELECT * FROM `table` t1 join `table` t2 WHERE (t1.name=t2.name) && (t1.id!=t2.id)
    
    0 讨论(0)
  • 2020-12-08 07:44
    SELECT id, payer_email FROM paypal_ipn_orders
    WHERE payer_email IN (
        SELECT payer_email FROM papypal_ipn_orders GROUP BY payer_email HAVING COUNT(*) > 1)
    
    0 讨论(0)
  • 2020-12-08 07:45

    use this code

     SELECT *  
        FROM  paypal_ipn_orders 
        GROUP BY  payer_email  
        HAVING COUNT( payer_email) >1  
    
    0 讨论(0)
  • 2020-12-08 07:45

    Similar to this answer, though I used a temporary table instead:

    CREATE TEMPORARY TABLE duplicates (
        SELECT payer_email
        FROM paypal_ipn_orders
        GROUP BY payer_email
        HAVING COUNT(id) > 1
    );
    SELECT id, payer_email
    FROM paypal_ipn_orders AS p
    INNER JOIN duplicates AS d ON d.payer_email=p.payer_email;
    
    0 讨论(0)
  • 2020-12-08 07:47

    This works the fastest for me

    SELECT
        primary_key
    FROM
        table_name
    WHERE
        primary_key NOT IN (
            SELECT
                primary_key
            FROM
                table_name
            GROUP BY
                column_name
            HAVING
                COUNT(*) = 1
        );
    
    0 讨论(0)
  • 2020-12-08 07:52

    Hi above answer will not work if I want to select one or more column value which is not same or may be same for both row data

    For Ex. I want to select username, birth date also. But in database is username is not duplicate but birth date will be duplicate then this solution will not work.

    For this use this solution Need to take self join on same table/

    SELECT  
        distinct(p1.id),  p1.payer_email , p1.username, p1.birth_date
    
    FROM 
        paypal_ipn_orders AS p1 
    
    INNER JOIN paypal_ipn_orders AS p2 
    
    ON p1.payer_email=p2.payer_email
    
    WHERE 
    
    p1.birth_date=p2.birth_date
    

    Above query will return all records having same email_id and same birth date

    0 讨论(0)
提交回复
热议问题