【问题标题】:SQL Query to Find Multiple Rows with Same Column ValueSQL 查询以查找具有相同列值的多行
【发布时间】:2016-05-21 16:42:18
【问题描述】:

我有一个用户表,其中有一列称为电子邮件,一列称为启用。我正在寻找具有相同电子邮件的所有用户。如果其中一个用户已启用为零,我想将该用户的登录名重置为其名字(另一列)。注意:最多应该有两个用户共享一个电子邮件。

我刚刚开始学习 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!

【问题讨论】:

  • 您的 RDBM 是什么?在大多数情况下,更新命令可能会有所不同。
  • 伟大的呼吁 - 它的 MySQL

标签: mysql sql database join


【解决方案1】:

如果您使用的是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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2023-01-06
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多