400 万件を超えるレコードを含むデータベースに、エラーのある文字可変列があることがわかりました。数字が含まれています。それぞれの数字は 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%');
私はそれを正しくやっていますか?そうでない場合、それを行う正しい方法は何ですか
数値が文字列の代わりに big int として格納され、同じルールが適用され、それでも 10 桁の長さである場合、つまり数値が 3.000.000.000 よりも小さく、2.000.000.000 よりも大きい場合はどうなるでしょうか? そして、それらはすべて55から始まる同じ番号である必要があります