SQL更新列。希望前4个和后2个数字以x长度的数字全部为零。
我试过了:
update mytable set mycol =
CONCAT(substr(mycol,1,4) , substr('00000000',length(mycol)-6) , substr(mycol,-2));
如果列包含12位数字,但是如果它是其他长度的话,这是可以的吗?
总之我希望: 123456789123为123400000023 1234567891234567为1234000000000067
答案 0 :(得分:0)
试试这个:
UPDATE mytable
SET mycol =
CONCAT(SUBSTR(mycol,1,4), REPEAT('0',LENGTH(mycol)-6), SUBSTR(mycol,-2))
这使用REPEAT
function in MySQL重复'0'指定的次数。
我已经使用一些示例数据对此进行了测试,它似乎可以满足您的需求,但您可以像SELECT
这样对数据进行测试:
SELECT CONCAT(SUBSTR(mycol,1,4), REPEAT('0',LENGTH(mycol)-6), SUBSTR(mycol,-2))
FROM mytable
答案 1 :(得分:0)
试试这个
update mytable set mycol =
CONCAT(LEFT(mycol,4) , REPEAT('0',length(mycol)-6) , RIGHT(mycol,2));
使用LEFT和RIGHT函数,您可以指定字符串两侧的字符串长度。重复功能将返回具有指定数量的'0'值的字符串。