1

我有一个数据库表,里面有一些非常丑陋和混乱的数据。在一个单独的表中,我有一个更清晰的数据版本,它们通过 id 链接,但我需要保留杂乱的数据集并且不能覆盖它,因为我使用它来检查数据差异。

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

所以如果id=3 uglydata=x7z cleandata=xyz,那么我会得到干净的数据,如果cleandata是 null,我会得到丑陋的数据。我尝试选择cleandataAS uglydata,希望 MySQL 会覆盖另一个字段,但这不起作用(是的,这很奇怪,我认为这不起作用)。

他们是这样做的好方法吗?

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

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

4

1 回答 1

4
SELECT IFNULL(cleandata, uglydata)
FROM uglytable
LEFT OUTER JOIN cleantable
ON clean_id = ugly_id
于 2009-01-23T22:00:10.263 回答