1

1桁の場合、英数字の文字列にゼロを追加したいと思います。

私が持っているのは次のようなものです:

CV -1-1A
CV-1-32
CV-12-24
CV-1-2
CV-1-2A

そして、私はそれを次のように変更したいと思います:

CV-01-01A
CV-01-32
CV-12-24
CV-01-02
CV-01-02A

4

1 に答える 1

0

LPAD文字列をゼロで埋める (または任意の文字を埋め込む) ために使用できます。ただし、文字列内では機能しないため、いくつかのトリックが必要です。a-b-cすべての値がwhereの形式であり、最大 3 文字の文字列であると仮定すると、aを使用して文字列を部分に分割し、各部分を個別に使用して、それらをすべて元に戻すことができます。bcSUBSTRING_INDEXLPADCONCAT

SELECT CONCAT(SUBSTRING_INDEX(col, '-', 1), 
       '-',
       LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(col, '-', 2), '-', -1), 2, '0'), 
       '-',
       LPAD(SUBSTRING_INDEX(col, '-', -1), 3, '0'))
FROM t;

これは、実際の例を含むSQLFiddleです。

于 2013-11-20T20:41:52.693 に答える