親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

MySQLで、先頭だけ大文字にしたい


先頭だけ大文字に

MySQLのあるカラムについてアルファベットなどが登録されている場合に、先頭だけ大文字に変換して取得する方法です。
例えば英単語を保存しているカラムからデータを取得したい場合など、使う場面はまぁまぁあると思います。

UPPERとLOWERを使って結合

取得方法は至ってシンプルです。
以下2つをCONCATで結合して取得するのです。

  • SUBSTRINGで1文字目だけを取得し、UPPERで大文字に
  • SUBSTRINGで2文字以降を取得し、LOWERで全て小文字に

例) alphabet_tableというテーブルからalphabetというカラムを取り出す場合

SELECT CONCAT (UPPER(SUBSTRING(alphabet,1,1)), LOWER(SUBSTRING(alphabet,2)))
   FROM alphabet_table;