MySQL의 열에서 동일한 값을 가진 행 찾기
[member] 테이블에서 일부 행의 email
열 값은 동일합니다 .
login_id | email
---------|---------------------
john | john123@hotmail.com
peter | peter456@gmail.com
johnny | john123@hotmail.com
...
일부 사람들은 다른 login_id를 사용했지만 동일한 전자 메일 주소를 사용했지만이 열에는 고유 제한 조건이 설정되지 않았습니다. 이제이 행을 찾아서 제거해야하는지 확인해야합니다.
이 행을 찾으려면 어떤 SQL 문을 사용해야합니까? (MySQL 5)
이 쿼리는 가장 많이 사용 된 주소를 사용하여 전자 메일 주소 목록과 사용 횟수를 제공합니다.
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
)
select email from mytable group by email having count(*) >1
다음은 email
하나 이상에 사용되는를 찾는 쿼리입니다 login_id
.
SELECT email
FROM table
GROUP BY email
HAVING count(*) > 1
login_id
by의 목록을 얻으려면 두 번째 (중첩 된) 쿼리가 필요 합니다 email
.
수락 된 답변의 첫 부분은 MSSQL에서 작동하지 않습니다.
이것은 나를 위해 일했다 :
select email, COUNT(*) as C from table
group by email having COUNT(*) >1 order by C desc
이메일 열에 빈 값이 포함 된 경우이를 사용하십시오.
select * from table where email in (
select email from table group by email having count(*) > 1 and email != ''
)
나는 이것이 매우 오래된 질문이라는 것을 알고 있지만 이것은 같은 문제를 겪을 수있는 다른 사람에게는 더 많으며 이것이 원하는 것에 더 정확하다고 생각합니다.
SELECT * FROM member WHERE email = (Select email From member Where login_id = john123@hotmail.com)
john123@hotmail.com이있는 모든 레코드를 login_id 값으로 리턴합니다.
고마워 사람들 :-) 나는 그 두 열에 대해서만 관심이 있었고 나머지는별로 신경 쓰지 않았기 때문에 아래를 사용했습니다. 잘 했어
select email, login_id from table
group by email, login_id
having COUNT(email) > 1
내부 선택 쿼리가있는 조건을 사용하여 원하는대로 전체 레코드를 가져옵니다.
SELECT *
FROM member
WHERE email IN (SELECT email
FROM member
WHERE login_id = abcd.user@hotmail.com)
참고 URL : https://stackoverflow.com/questions/1786533/find-rows-that-have-the-same-value-on-a-column-in-mysql
'Programing' 카테고리의 다른 글
파이썬에서 float를 정수로 변환하는 가장 안전한 방법은 무엇입니까? (0) | 2020.05.16 |
---|---|
Windows에서 파일의 대소 문자를 변경 하시겠습니까? (0) | 2020.05.16 |
Scala에서 Vector를 언제 선택해야합니까? (0) | 2020.05.16 |
스칼라 목록에있는 아이템을 얻으시겠습니까? (0) | 2020.05.16 |
여러 구분 기호와 함께 String.split () 사용 (0) | 2020.05.16 |