ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< リファクタリング | main | 情報処理試験まで >>
Mysqlでの0詰め
Mysqlで取得したデータを左ゼロ詰めする処理が必要になりました。
取得したあとフォーマットしてもよかったのですが、
ちょっと面倒だなと思い、関数がないか調べてみました。

「lpad」、「rpad」という関数が見つかりました。

select lpad(col1,3,'0') from table1;
とすると、col1が「1」の場合、「001」が取得できます。

select rpad(col1,5,'0') from table1;
とすると、col1が「3」の場合、「30000」が取得できます。

今回はこのようにして、並び順の更新に使用しました。
update table1 set
dispseq = lpad(CAST(dispseq as SIGNED) + 1, 3, '0')

「001」のようなフォーマットで保存されている「dispseq 」を
1プラスして更新しています。

まず、文字型なのでcastで数値にして+1したあとに
lpad関数で3桁にして保存しています。

関数を組み合わせることで少し楽にデータ更新できました。
| Mysql | 18:33 | comments(0) | - |
コメント
コメントする