1

SQL 更新列。最初の 4 桁と最後の 2 桁は、x の長さですべてゼロを残します。

私は試した:

update mytable set mycol = 
CONCAT(substr(mycol,1,4) , substr('00000000',length(mycol)-6) , substr(mycol,-2));

列に 12 桁の数字が含まれている場合は問題ありませんが、それ以外の長さの場合はどうでしょうか。

要するに、私は欲しい:123400000023として123456789123 1234000000000067として1234567891234567

4

2 に答える 2

0

これを試して:

UPDATE mytable 
SET mycol = 
    CONCAT(SUBSTR(mycol,1,4), REPEAT('0',LENGTH(mycol)-6), SUBSTR(mycol,-2))

これは、REPEATMySQL の関数を使用して、指定された回数だけ「0」を繰り返します。

これをいくつかのサンプルデータでテストしましたが、必要なことをしているように見えますが、次のSELECTようにしてデータでテストできます。

SELECT CONCAT(SUBSTR(mycol,1,4), REPEAT('0',LENGTH(mycol)-6), SUBSTR(mycol,-2))
FROM mytable 
于 2013-10-02T12:02:52.927 に答える