我有一个数据库表,里面装满了一些非常丑陋和混乱的数据。在一个单独的表中,我有一个更清晰的数据版本,它们通过id链接,但我需要保留凌乱的数据集,并且不能覆盖它,因为我用它来检查数据差异。
我正在尝试将数据合并到一个新表中,或者在两个表中使用单个查询,并在结果中提供干净的表结果优先级。
因此,如果id=3
uglydata=x7z
cleandata=xyz
,那么我会得到干净的数据,如果cleandata
为空,我会得到丑陋的数据。
我尝试选择cleandata
AS uglydata
,希望MySQL只会覆盖其他字段,但这不起作用(是的,这很奇怪,我觉得这样做不行)。
他们是一个很好的方法吗?
我能想到的另一个解决方案是,只是首先从干净数据插入到新表中,然后从丑陋数据中插入,因为出价是唯一的。
但我希望我能够按类型或其他方式对结果进行优先排序。
答案 0 :(得分:3)
SELECT IFNULL(cleandata, uglydata)
FROM uglytable
LEFT OUTER JOIN cleantable
ON clean_id = ugly_id