SQL 查询以查找具有相同列值的多行
Posted
技术标签:
【中文标题】SQL 查询以查找具有相同列值的多行【英文标题】:SQL Query to Find Multiple Rows with Same Column Value 【发布时间】: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 【参考方案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
【讨论】:
以上是关于SQL 查询以查找具有相同列值的多行的主要内容,如果未能解决你的问题,请参考以下文章
如果相同的列值在多行中重复,则 UPDATE - SQL / MYSQL