mysql - 对于重复记录,设置值mysql

标签 mysql join null duplicates fill

我在 mysql 中有一个表,如下所示:

BusinessName ABN Status CountOfRecordsPerBusinessName
abccompany   123 Registered 2
abccompany   null Deregistered 2

如果企业名称重复,并且 ABN = null(表示已注销)但不为 null(表示注册状态),我想将 null ABN 设置为 123。

我该怎么做?

最佳答案

我们可以尝试在此处进行更新自连接:

UPDATE yourTable t1
INNER JOIN yourTable t2
    ON t1.BusinessName = t2.BusinessName AND
       t1.ABN IS NULL AND
       t2.ABN IS NOT NULL
SET t1.ABN = t2.ABN;

这里的基本思想是加入给定的业务记录,其中 ABNNULL给来自同一企业的一位 ABN不是NULL 。然后,拉过非NULL ABN从第二条记录到第一条记录的值。我们不必担心意外更新非重复项,因为这些连接条件总是会失败。

关于mysql - 对于重复记录,设置值mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51239096/

相关文章:

java - 比较字符串数组输出 Null

java - 我如何检查Java中是否存在变量?

java - SQLException 从 JTable 和数据库中删除行

php - 如何将逗号分隔的数据添加到数据库中

mysql - 连接来自 2 个 MySQL 表的数据

mysql - 如何通过基于少数列值删除重复项来从两个表中获取数据

mysql - 显示连接中的非重复行以及其中的规定 mysql

javascript - 使用 MYSQL 防止已选择的选项 Jquery 自动完成

sql - 在 SQL 连接的情况下如何将 SQL 转换为关系代数?

java - 如何使用带有空值和泛型类型的 JComboBox?