我的数据库表中充满了一些非常丑陋和混乱的数据。在一个单独的表中,我有一个更干净的数据版本,它们由一个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