MySQL行优先级

时间:2009-01-23 21:47:53

标签: mysql cleaned-data

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

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

因此,如果id=3 uglydata=x7z cleandata=xyz,那么我会得到干净的数据,如果cleandata为空,我会得到丑陋的数据。 我尝试选择cleandata AS uglydata,希望MySQL只会覆盖其他字段,但这不起作用(是的,这很奇怪,我觉得这样做不行)。

他们是一个很好的方法吗?

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

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

1 个答案:

答案 0 :(得分:3)

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