我在mysql中有一个表,看起来像这样:
BusinessName ABN Status CountOfRecordsPerBusinessName
abccompany 123 Registered 2
abccompany null Deregistered 2
如果公司名称重复,并且 ABN = 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;
这里的基本思想是加入给定的业务记录,其中ABN
NULL
到同一业务记录,其中ABN
未NULL
。 然后,将非NULL
ABN
值从第二条记录拉到第一条记录。 我们不必担心意外更新非重复项,因为对于这些重复项,联接条件总是会失败。