如何处理卧室数量的不一致数据值?

时间:2015-02-23 18:55:07

标签: mysql casting database-schema

我正在创建一个API并处理遗留数据库,该数据库的number_bedrooms值不一致。在7000个单位中,43个具有非int /数值。

有效整数的范围基本上是1-7。有些人的价值观有“2 + Loft”或“2 + Loft”或“Studio”或“5 +”。

由于这是一个遗留数据库,我无法真正改变事物(许多应用程序正在使用它并且可能使用“2 + Loft”进行硬编码的SQL查询)我正在考虑创建一个新的int_bedrooms列。

类似的东西:

UPDATE table 
SET int_bedrooms = number_bedrooms 
WHERE
number_bedrooms IS NOT NULL and number_bedrooms > 0

这是最可行的方法吗?还可以使用哪个函数(CONVERT,CASt)来可靠地转换:

'5+' into '5'
'2 + Loft' into '2'
'2 + Den' into '2'

1 个答案:

答案 0 :(得分:-1)

UPDATE table 
SET int_bedrooms = CAST(number_bedrooms AS UNSIGNED) ;