我正在创建一个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'
答案 0 :(得分:-1)
UPDATE table
SET int_bedrooms = CAST(number_bedrooms AS UNSIGNED) ;