我的数据库表中充满了一些非常丑陋和混乱的数据。在一个单独的表中,我有一个更干净的数据版本,它们由一个ID链接,但是我需要保留混乱的数据集,并且在使用它检查数据差异时不能覆盖它。

我正在尝试将数据合并到新表中,或者在两个表之间使用单个查询,并在结果中赋予干净表结果优先级。

因此,如果id=3 uglydata=x7z cleandata=xyz,那么我将获得干净的数据,如果cleandata为null,则我将获得丑陋的数据。
我尝试选择cleandata AS uglydata,希望MySQL会覆盖其他字段,但这是行不通的(是的,这很奇怪,我认为那是行不通的)。

他们这样做的好方法吗?

我能想到的另一种解决方案是先从干净数据插入到新表中,然后再从丑陋数据中插入,因为出价是唯一的。

但我希望我能够按类型或其他方式对结果进行优先排序。

最佳答案

SELECT IFNULL(cleandata, uglydata)
FROM uglytable
LEFT OUTER JOIN cleantable
ON clean_id = ugly_id

10-04 10:57