我正在使用一个数据库,在那里我们有一个FNN专栏(完整的国家编号)。在澳大利亚,所有的FNN都是10位数字,以0开头,后跟一位州号码,然后是8位电话号码。
目前,一半的条目只有9位数字,这意味着前0位被排除在外,而另一半则有完整的10位数字。
我想将0连接到所有没有0开头的列值。这是我尝试的当前查询,但结果是0受影响。
UPDATE SUBSCRIBERS SET FNN=concat('0',FNN) WHERE FNN LIKE '[1-9]%';
状态数字不是以0开头的,所以我只需要在第一个数字介于1-9之间的地方连接一个0。为什么上面的查询不起作用?
谢谢。
当做,
马特
最佳答案
在您的问题中,您提到其中一些行有9位数字,而另一半有10位数字,所以我建议您不要查找FNN从1-9开始的行,为什么不查找FNN=9位数字的行?
UPDATE SUBSCRIBERS
SET FNN=concat('0',FNN)
WHERE CHAR_LENGTH(FNN) = 9;