我正在创建一个API,并处理一个number_bedrooms
值不一致的遗留数据库。在7000个单元中,有43个单元具有非整数/数字值。
有效整数的范围基本上是1-7。有些具有"2+Loft"或"2+Love"或"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'
UPDATE table
SET int_bedrooms = CAST(number_bedrooms AS UNSIGNED) ;