1 月26th

SQLでハイフン付の文字列(電話番号)を分解する!!

t-matsuda MySQL Read on

「000-0000-0000」のような形式でDBに入っている(今回は、MySQL)文字列を
どうにかしてSQLだけでハイフンを区切りとして分解できねーかなと思って、
以下のようなSQLを作ってみました。

「str」の部分を「00-0000-0000」のような電話番号形式に変更してください。

–1番目(市外局番)

select substring(’str’, 1, position(’-’ IN ’str’) - 1);

–2番目(市外局番)
select substring(
’str’,
position(’-’ IN ’str’) + 1,
(
locate(’-', ’str’, (position(’-’ IN ’str’) + 1 )) -1
-
position(’-’ IN ’str’))
);

–3番目(番号)
select substring(’str’, locate(’-', ’str’, (position(’-’ IN ’str’) + 1 )) + 1);

他にもっとシンプルな方法ないのだろうか!?

てかPHPとか使えば、explode()で一発ジャンと言う声が聞こえてきそうですが
どうしてもSQLだけでやりたかったんで。。。


About this entry