복붙노트

[SQL] MySQL은 컬럼에서 동일한 값이 행을 찾기

SQL

MySQL은 컬럼에서 동일한 값이 행을 찾기

A [부재 표에서, 일부 열은 전자 칼럼에 대해 동일한 값을 갖는다.

login_id | email
---------|---------------------
john     | john123@hotmail.com
peter    | peter456@gmail.com
johnny   | john123@hotmail.com
...

다른 login_ID에 있지만 같은 이메일 주소를 사용하는 어떤 사람들은, 어떤 고유 제한 조건이 컬럼에 설정되지 않았다. 지금은 이러한 행을 발견하고 제거해야하는지 확인해야합니다.

나는 이러한 행을 찾기 위해 어떤 SQL 문을 사용해야합니까? (MySQL의 5)

해결법

  1. ==============================

    1.이 쿼리는 먼저 가장 많이 사용 주소로 당신에게 이메일 주소 및 횟수는 사용하고의 목록을 제공합니다.

    이 쿼리는 먼저 가장 많이 사용 주소로 당신에게 이메일 주소 및 횟수는 사용하고의 목록을 제공합니다.

    SELECT email,
           count(*) AS c
    FROM TABLE
    GROUP BY email
    HAVING c > 1
    ORDER BY c DESC
    

    당신은 전체 행을 원하는 경우 :

    select * from table where email in (
        select email from table
        group by email having count(*) > 1
    )
    
  2. ==============================

    2.

    select email from mytable group by email having count(*) >1
    
  3. ==============================

    3.여기에 두 개 이상의 login_ID에 사용되는 이메일의를 찾을 수 쿼리는 다음과 같습니다

    여기에 두 개 이상의 login_ID에 사용되는 이메일의를 찾을 수 쿼리는 다음과 같습니다

    SELECT email
    FROM table
    GROUP BY email
    HAVING count(*) > 1
    

    당신은 이메일로 login_ID에 목록을 가져 오지 쿼리 (중첩의) 두 번째 필요합니다.

  4. ==============================

    4.허용 대답의 첫 번째 부분은 MSSQL 작동하지 않습니다. 이것은 나를 위해 일한 :

    허용 대답의 첫 번째 부분은 MSSQL 작동하지 않습니다. 이것은 나를 위해 일한 :

    select email, COUNT(*) as C from table 
    group by email having COUNT(*) >1 order by C desc
    
  5. ==============================

    5.이메일 열이 빈 값이 포함 된 경우 이것을 사용

    이메일 열이 빈 값이 포함 된 경우 이것을 사용

     select * from table where email in (
        select email from table group by email having count(*) > 1 and email != ''
        )
    
  6. ==============================

    6.나는 이것이 아주 오래된 질문을 알고 있지만이 더 같은 문제가있을 수 있습니다 다른 사람을 위해 내가이 원하는 있었는지에 더 정확하다고 생각합니다.

    나는 이것이 아주 오래된 질문을 알고 있지만이 더 같은 문제가있을 수 있습니다 다른 사람을 위해 내가이 원하는 있었는지에 더 정확하다고 생각합니다.

    SELECT * FROM member WHERE email = (Select email From member Where login_id = john123@hotmail.com) 
    

    이것은 login_ID에 값으로 john123@hotmail.com있는 모든 레코드를 반환합니다.

  7. ==============================

    7.감사들 :-) 나는 단지 그 두 컬럼에 대해 걱정하지 너무 많은 나머지에 대한 때문에 아래를 사용했다. 일 큰

    감사들 :-) 나는 단지 그 두 컬럼에 대해 걱정하지 너무 많은 나머지에 대한 때문에 아래를 사용했다. 일 큰

      select email, login_id from table
        group by email, login_id
        having COUNT(email) > 1
    
  8. ==============================

    8.당신은 내 선택 쿼리와 조건을 사용하여 원하는 레코드 전체를 가져옵니다.

    당신은 내 선택 쿼리와 조건을 사용하여 원하는 레코드 전체를 가져옵니다.

    SELECT *
    FROM   member
    WHERE  email IN (SELECT email
                     FROM   member
                     WHERE  login_id = abcd.user@hotmail.com) 
    
  9. from https://stackoverflow.com/questions/1786533/find-rows-that-have-the-same-value-on-a-column-in-mysql by cc-by-sa and MIT license