SQLで住所から都道府県を抽出する。


SQL都道府県を抽出する機会があったので、
メモっておきます。

SUBSTRING(address,1,
 CASE
    WHEN locate('県',address)<>0 THEN locate('県',address)
    WHEN locate('府',address)<>0 THEN locate('府',address)
    WHEN locate('都',address)<>0 THEN locate('都',address)
    WHEN locate('道',address)<>0 THEN locate('道',address)
    ELSE '海外'
END)

※addressが住所のカラム

府と都を逆にすると、京都府が引っかかっちゃうので、
お気をつけて。