Em uma tabela [member], algumas linhas têm o mesmo valor para a email
coluna.
login_id | email
---------|---------------------
john | john123@hotmail.com
peter | peter456@gmail.com
johnny | john123@hotmail.com
...
Algumas pessoas usaram um login_id diferente, mas o mesmo endereço de e-mail, nenhuma restrição exclusiva foi definida nesta coluna. Agora eu preciso encontrar essas linhas e ver se elas devem ser removidas.
Qual instrução SQL devo usar para encontrar essas linhas? (MySQL 5)
count(1)
funciona igualmente bem e tem melhor desempenho. (Aprendi esse truque de Stack Overflow ;-)count(1)
stackoverflow.com/questions/2710621/...fonte
Aqui está uma consulta para encontrar
email
os que são usados para mais de umlogin_id
:Você precisará da segunda consulta (aninhada) para obter a lista de
login_id
poremail
.fonte
A primeira parte da resposta aceita não funciona para o MSSQL.
Isso funcionou para mim:
fonte
use isso se sua coluna de email contiver valores vazios
fonte
Sei que essa é uma pergunta muito antiga, mas é mais para alguém que possa ter o mesmo problema e acho que isso é mais preciso do que se queria.
Isso retornará todos os registros que têm [email protected] como um valor login_id.
fonte
Obrigado pessoal :-) Eu usei o abaixo porque eu só me importava com essas duas colunas e não muito com o resto. Funcionou muito bem
fonte
Obtenha o registro inteiro como desejar, usando a condição com a consulta de seleção interna.
fonte