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
最佳答案
尝试这个:
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