我在mysql中有一个看起来像这样的表:
BusinessName ABN Status CountOfRecordsPerBusinessName
abccompany 123 Registered 2
abccompany null Deregistered 2
如果商家名称重复,并且ABN =注销状态为null,但注册状态不为null,我想将ABN设置为123。
我该怎么做?
答案 0 :(得分:2)
我们可以尝试在此处进行更新自我加入:
<td class="width-33 content-cell" align="left" style="width: 33.33%; padding: 30px 0px; padding-bottom: 0px;">
这里的基本思想是将给定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
值从第二条记录拖到第一条记录。我们不必担心意外更新非重复项,因为联接条件对于这些重复项总是会失败。