MySQLで数値のクエリ結果を分割する方法【CONCAT関数の活用】
MySQLで数値のクエリ結果を分割したい場合、CONCAT()関数を使用すると簡単に実現できます。この記事では、実際にテーブルを作成し、数値の先頭1桁と残りの桁を「/」で区切って表示する方法を、具体的なサンプルコードとともに解説します。
1. サンプルテーブルを作成する
まずは動作確認用のテーブルを作成しましょう。ここでは「StudentId」というint型カラムを持つテーブルを用意します。
mysql> create table DemoTable
(
StudentId int
);
Query OK, 0 rows affected (0.68 sec)2. テーブルにレコードを挿入する
次に、INSERT文を使ってサンプルデータを登録します。
mysql> insert into DemoTable values(2222); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(5555); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(4567); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(8905); Query OK, 1 row affected (0.15 sec)
3. 登録したデータを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
出力結果
+-----------+ | StudentId | +-----------+ | 2222 | | 5555 | | 4567 | | 8905 | +-----------+ 4 rows in set (0.00 sec)
4. 数値を分割して表示するクエリ
ここからが本題です。以下のクエリでは、CONCAT()とLEFT()、RIGHT()、LENGTH()を組み合わせて、数値の先頭1桁と残りの桁を「/」で区切って表示しています。
mysql> select concat(left(StudentId, 1), '/', right(StudentId, length(StudentId)-1)) splitNumericalValue from DemoTable;
出力結果
+---------------------+ | splitNumericalValue | +---------------------+ | 2/222 | | 5/555 | | 4/567 | | 8/905 | +---------------------+ 4 rows in set (0.00 sec)
クエリの仕組みを解説
このクエリがどのように動作しているのか、各関数の役割を見ていきましょう。
- LEFT(StudentId, 1):値の左側から1文字(先頭の桁)を取り出します。
- RIGHT(StudentId, length(StudentId)-1):文字列全体の長さから1を引いた分だけ右側から取り出すことで、先頭以外の残りの桁を取得します。
- CONCAT():取り出した先頭の桁、区切り文字「/」、残りの桁を連結して1つの文字列にします。
例えば「2222」という値の場合、「LEFT」で「2」、「RIGHT」で「222」を取得し、CONCATで連結することにより「2/222」という結果が得られます。
応用ポイント
区切り位置や区切り文字を変更すれば、さまざまな形式への変換にも対応できます。例えば、先頭2桁を分けたい場合は left(StudentId, 2) と right(StudentId, length(StudentId)-2) に変更するだけでOKです。また、区切り文字を「-」や「:」に置き換えれば、電話番号や時刻のようなフォーマットへの整形も可能です。データの見せ方を工夫したい場面で、ぜひ活用してみてください。
-
MySQLで列(カラム)を分割する方法!SUBSTRING_INDEX関数の使い方を徹底解説
MySQLで列を分割するには?SUBSTRING_INDEX関数の基本MySQLで1つの列に格納された文字列を区切り文字で分割したい場合、SUBSTRING_INDEX()関数を使用します。この記事では、アンダースコア(_)で区切られた氏名データを分割する具体例を通じて、その使い方をわかりやすく解説します。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(40) -> );Query OK, 0 rows affected (1.
-
MySQLでクエリの実行結果を変数に代入する方法をわかりやすく解説
MySQLでクエリ結果を変数に代入する基本MySQLでは、@変数名 の形式でユーザー定義変数を使用することで、クエリの実行結果を変数に格納できます。代入には :=(代入演算子)を使い、SELECT文の中で直接値を取得するのが一般的な方法です。この記事では、実際にテーブルを作成し、クエリ結果を変数に代入するまでの一連の手順をサンプルコード付きで紹介します。1. サンプルテーブルを作成するまず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable1864 ( Id int, FirstName var