MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで複数のパラメータ値を1つの列に挿入する方法

MySQLでは、CONCAT_WS()CONCAT() 関数を使うことで、複数のパラメータ値を1つの列にまとめて挿入できます。ここでは、氏名・年齢・国名の3つの値を「-(ハイフン)」区切りで1つの列に格納する例を紹介します。

サンプルテーブルの作成

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable
(
    Name varchar(100),
    Age int,
    CountryName varchar(100),
    PersonInformation text
);
Query OK, 0 rows affected (0.67 sec)

CONCAT_WS()を使って複数の値を1つの列に挿入する

続いて、複数のパラメータ値を1つの列に挿入するクエリを見ていきましょう。使用するのは、MySQLのテーブルにレコードを挿入するときにおなじみのINSERT文です。ポイントは、PersonInformation列の値として concat_ws('-' , Name, Age, CountryName) を指定している点です。これにより、3つのカラムの値が「-」で連結されて1つの文字列として保存されます。

mysql> insert into DemoTable values('John',21,'US',concat_ws('-',Name,Age,CountryName));
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Chris',22,'AUS',concat_ws('-',Name,Age,CountryName));
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Bob',24,'UK',concat_ws('-',Name,Age,CountryName));
Query OK, 1 row affected (0.17 sec)

補足: CONCAT_WS() の第1引数には区切り文字を指定し、第2引数以降に連結したい値を渡します。「WS」は「With Separator(区切り文字あり)」の略です。NULL値は自動的にスキップされるため、NULLが混在するデータでも扱いやすいのが特徴です。なお、区切り文字が不要な場合は CONCAT() 関数でも同様の処理が可能です。

結果の確認

SELECT文を実行して、テーブル内の全レコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、次のような出力が得られます。

+-------+------+-------------+-------------------+
| Name  | Age  | CountryName | PersonInformation |
+-------+------+-------------+-------------------+
| John  | 21   | US          | John-21-US        |
| Chris | 22   | AUS         | Chris-22-AUS      |
| Bob   | 24   | UK          | Bob-24-UK         |
+-------+------+-------------+-------------------+
3 rows in set (0.00 sec)

このように、PersonInformation列に「John-21-US」「Chris-22-AUS」「Bob-24-UK」という形で、複数のパラメータ値が1つの列に正しく挿入されていることが確認できました。ログ情報や履歴データなど、複数の項目をまとめて1つのフィールドに保持したい場合に便利なテクニックなので、ぜひ活用してください。

  1. JavaでMySQLテーブルに1つのカラムのみを挿入する方法

    JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m

  2. MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法

    はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実