MySQLのSELECT文で列の値の末尾に文字を追加する方法
列の値の末尾に文字を追加したい場合は、CONCAT()関数を使って文字列を連結します。この記事では、具体的な手順をサンプルコードとともに解説します。
テーブルの作成
まず、サンプル用のテーブルを作成しましょう。
mysql> create table DemoTable766 (Name varchar(100));
Query OK, 0 rows affected (0.65 sec)
レコードの挿入
insertコマンドを使って、テーブルにいくつかのレコードを挿入します。
mysql> insert into DemoTable766 values('John');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable766 values('Sam');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable766 values('Carol');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable766 values('David');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable766 values('Bob');
Query OK, 1 row affected (0.12 sec)レコードの確認
select文を使って、テーブル内のすべてのレコードを表示します。
mysql> select *from DemoTable766;
以下のような出力が得られます。
+-------+
| Name |
+-------+
| John |
| Sam |
| Carol |
| David |
| Bob |
+-------+
5 rows in set (0.00 sec)
末尾に文字を追加するクエリ
列の値の末尾に文字を追加するには、以下のようにCONCAT()関数を使用します。
mysql> select concat(Name,' S') from DemoTable766;
実行結果は以下の通りです。
+-------------------+
| concat(Name,' S') |
+-------------------+
| John S |
| Sam S |
| Carol S |
| David S |
| Bob S |
+-------------------+
5 rows in set (0.00 sec)
このように、CONCAT()関数を利用することで、元のテーブルデータを変更することなく、SELECT文の実行時に列の値の末尾へ任意の文字や文字列を追加して表示できます。複数の文字列を連結したい場合も、CONCAT()の引数にカンマ区切りで渡すだけで簡単に対応可能です。
-
MySQLで重複する値ごとのレコードを別の列に合計して表示する方法
MySQLでは、重複している値(同じ名前など)を持つ複数のレコードの数値を、名前ごとにまとめて合計したいケースがあります。このような場合には、集計関数SUM()とGROUP BY句を組み合わせることで簡単に実現できます。本記事では、実際にサンプルテーブルを作成し、重複する値を持つレコードを別の列(合計列)として集計・表示する手順を解説します。1. サンプルテーブルを作成するまず、CREATE TABLE文を使ってテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(20), -> V
-
MySQLで英字と数字が混在する列の値を正しくソートする方法
MySQLでは、英字と数字が混在するデータ(例:「J23」「C13」など)が格納された列を単純にORDER BY句でソートすると、すべて文字列として扱われるため、意図した通りの順序にならないことがあります。本記事では、LEFT関数・SUBSTR関数・CAST関数を組み合わせて、文字部分と数値部分をそれぞれ正しく並べ替える方法を、実際のSQL例とともに解説します。 サンプルテーブルの作成 まず、ソート対象となるテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Code varchar(20) ->