我发现我在一个包含超过 4 万条记录的数据库中有一个字符可变列,其中包含错误。它包含数字。每个数字必须有 12 位数字,但由于某种原因,其中很多数字最终都有 10 位数字。好消息是,我唯一要做的就是在每个只有 10 位数字并以数字“22”开头的单元格前面加上“55”,而保留 12 位数字的单元格保持不变。
我的目标是这样的:
UPDATE
table
SET
column = CONCAT( '55', column )
WHERE
LENGTH( column ) = 10 AND column LIKE( '22%');
我正在考虑使用这个:
UPDATE
telephones
SET
telephone_number = CONCAT( '55', telephone_number )
WHERE
LENGTH( telephone_number ) = 10 AND telephone_number LIKE( '22%');
我做对了吗?如果没有,正确的方法是什么
如果数字不是存储为大整数而不是字符串,同样的规则适用,它仍然是 10 位长,这意味着数字小于 3.000.000.000 并且大于 2.000.000.000?并且它们都必须是相同的数字,以 55 开头