2016-02-11 132 views
1

我有一個用戶表,其中包含一個名爲email的列和一個名爲enabled的列。我正在尋找使用同一封電子郵件的所有用戶。如果其中一個用戶已啓用爲零,我想將該用戶的登錄名重置爲其名(另一列)。注意:最多應有兩個用戶共享一封電子郵件。SQL查詢以查找具有相同列值的多行

我剛開始學習SQL。我將如何得到這個查詢工作?我感謝耐心!

update users 
set users.login = users.first_name 
from users u1 inner join users u2 
on u1.email = u2.email 
    where u1.id != u2.id 
    and u2.enabled is null 

我的RDBMS是MySQL!

+1

什麼是你的RDBM的?大部分時間更新命令可能會有所不同。 –

+0

偉大的呼喚 - 它的MySQL – CarlyQ

回答

0

如果您正在使用MySQL那麼;

update users u1 
join users u2 on 
u1.email = u2.email and u1.enable is null 
set u1.login = u1.first_name 

sql fiddle demo

相關問題