MySQLを使用しているときに、先行ゼロで多数の数値を埋める必要がある状況に遭遇することがあります。
おそらく、すべての数字が3桁である必要がありますが、提供されたデータでは、数字は1桁から、2桁、場合によっては3桁の範囲です。要件は、すべての数値を先行ゼロで埋めることですが、3桁の要件の不足を補うためだけです。
LPAD()
関数は、このシナリオで必要なことを正確に実行します。
LPAD()関数
厳密に言えば、LPAD()
関数は、文字列を別の文字列でパディングします。これは次のように機能します:
LPAD(str,len,padstr)
str
埋める文字列、len
は最終結果の必要な長さであり、padstr
他の文字列を埋めるために使用される文字列です。
例
1桁の数字に2つのゼロを埋め込む例を次に示します。
SELECT LPAD(7, 3, 0);
結果:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
この場合、3
を指定したため、2つの先行ゼロが追加されました。 必要な長さとして。
したがって、2桁の数字から始めると、ゼロが1つだけ追加されます。
SELECT LPAD(17, 3, 0);
結果:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
ゼロ以外の値
LPAD()
関数はゼロだけに限定されません。前述のように、任意の文字列を他の文字列で埋めるために使用できます。したがって、必要に応じて、数字の先頭に1、先頭の文字、またはその他の記号を埋め込むことができます。
SELECT LPAD(7, 10, '.');
結果:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
また、実際には文字列関数であるため、数値以外の文字列を埋めるために使用できます。また、パディング文字は1つだけではありません。必要に応じて、複数の文字でパディングできます。
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
結果:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+