MySQLの結果セットで数値を文字列に置き換える方法|CASE文の実践的な使い方
MySQLの結果セットで数値を文字列に置き換えることは可能?
はい、CASE文を使用することで、MySQLの結果セット内の数値を任意の文字列に置き換えることができます。例えば、boolean型のカラムに格納された「1」「0」といった数値を、「既婚」「未婚」のような分かりやすい文字列として表示したい場合に非常に便利です。
ここでは、実際にテーブルを作成し、データを挿入して、CASE文による置き換えを行う手順を順番に解説します。
ステップ1:テーブルを作成する
まず、boolean型のカラムを持つテーブル「DemoTable」を作成します。
mysql> create table DemoTable
-> (
-> isMarried boolean
-> );
Query OK, 0 rows affected (0.76 sec)
boolean型は内部的にはTINYINT(1)として扱われるため、trueは「1」、falseは「0」として保存されます。
ステップ2:レコードを挿入する
次に、insertコマンドを使ってテーブルにサンプルデータを挿入します。
mysql> insert into DemoTable values(true);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(false);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(false);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(true);
Query OK, 1 row affected (0.19 sec)
ステップ3:挿入したデータを確認する
select文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
出力結果
+-----------+
| isMarried |
+-----------+
| 1 |
| 0 |
| 0 |
| 1 |
+-----------+
4 rows in set (0.00 sec)
このように、現時点では数値の「1」と「0」がそのまま表示されています。
CASE文で数値を文字列に置き換える
それでは本題です。CASE文を使って、結果セット内の数値を文字列に置き換えるクエリは以下の通りです。
mysql> select isMarried,
CASE isMarried WHEN 1 THEN 'Married' ELSE 'Not Married' END AS Status
from DemoTable;
出力結果
+-----------+-------------+
| isMarried | Status |
+-----------+-------------+
| 1 | Married |
| 0 | Not Married |
| 0 | Not Married |
| 1 | Married |
+-----------+-------------+
4 rows in set (0.00 sec)
クエリのポイント解説
- CASE isMarried WHEN 1 THEN 'Married':isMarriedの値が「1」の場合に「Married」という文字列を返します。
- ELSE 'Not Married':「1」以外の値の場合に「Not Married」を返します。
- AS Status:置き換え後の結果を表示するカラムに「Status」という別名を付けています。
元のisMarriedカラムも同時に表示しているため、変換前の数値と変換後の文字列を並べて比較確認できるのがポイントです。
まとめ
MySQLではCASE文を活用することで、SELECT句の中で数値を任意の文字列に動的に変換できます。この手法は、フラグ値(0/1)やステータスコードなど、意味が分かりにくい数値データをユーザーにとって読みやすい形式で表示したい場合に広く活用されています。アプリケーション側で変換処理を書く必要がないため、SQLだけで完結できるのも大きなメリットです。
-
MySQLで列内の文字列を検索して置換する方法|REPLACE関数の使い方を解説
MySQLでテーブルの列に保存されたファイルパスなど、特定の文字列をまとめて検索・置換したい場合は、REPLACE() 関数を使用します。この記事では、実際にサンプルテーブルを作成し、UPDATE文と組み合わせて一括置換を行う手順をわかりやすく解説します。REPLACE() 関数とはREPLACE() は、指定した文字列の中から検索対象の文字列をすべて見つけ、別の文字列に置き換えるための関数です。基本的な構文は以下のとおりです。REPLACE(対象の列名, 検索する文字列, 置換後の文字列)この関数を UPDATE 文と組み合わせることで、テーブル内のデータを一括で書き換えられます。1. サン
-
Pythonで文字列内の数字を英単語(文字列)に置き換える方法
Pythonでは、文字列の中に含まれる数字を、対応する英単語(例:「3」→「three」)に置き換えることができます。この記事では、辞書(dict)とforループを組み合わせた基本的な実装方法を、サンプルコードとともにわかりやすく解説します。 1. 変換用の辞書を用意する まず、各数字をキー、その英単語表現を値とする辞書オブジェクトを作成します。 dct = {0: zero, 1: one, 2: two, 3: three, 4: four, 5: five, 6: six, 7: seven, 8: eight, 9: nine} 2. 結果を格納する空の文字列を初期化