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

MySQLのSELECT文でクエリに新しい列を追加し、値を指定する方法

MySQLのSELECT文で新しい列と値を追加するには?

MySQLでは、実際のテーブルには存在しない新しい列をクエリ結果に追加し、そこに特定の値を設定したいケースがよくあります。たとえば、既存のデータに対して一時的にフラグや定数を持たせたい場合などです。このようなときは、AS句を使って別名(エイリアス)を付けるだけで簡単に実現できます。

基本となる構文は以下の通りです。

select yourColumnName1,yourColumnName2,.....N ,yourValue AS anyAliasName from yourTableName;

サンプルテーブルを作成する

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20)
);
Query OK, 0 rows affected (0.84 sec)

次に、insertコマンドを使っていくつかのレコードを挿入します。

mysql> insert into DemoTable(FirstName) values('John');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(FirstName) values('Larry');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(FirstName) values('Robert');
Query OK, 1 row affected (0.15 sec)

テーブルの内容を確認する

SELECT文を使って、テーブル内のすべてのレコードを表示してみます。

mysql> select *from DemoTable;

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

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | John      |
| 2  | Larry     |
| 3  | Chris     |
| 4  | Robert    |
+----+-----------+
4 rows in set (0.00 sec)

SELECT文で新しい列と値を追加する

それでは、本題である「クエリへの新しい列の追加と値の設定」を行いましょう。以下の例では、新しい列「AGE」を作成し、その値として23を指定しています。

mysql> select Id,FirstName,23 AS AGE from DemoTable;

実行結果は次のようになります。

+----+-----------+-----+
| Id | FirstName | AGE |
+----+-----------+-----+
| 1  | John      | 23  |
| 2  | Larry     | 23  |
| 3  | Chris     | 23  |
| 4  | Robert    | 23  |
+----+-----------+-----+
4 rows in set (0.00 sec)

このように、23 AS AGEと記述するだけで、すべての行に同じ値(23)が入った「AGE」という列がクエリ結果に自動的に追加されます。ポイントは以下の通りです。

  • 値は任意のリテラルを指定可能: 数値だけでなく、文字列や日付なども指定できます(例:'Active' AS Status)。
  • ASは省略可能: 23 AGEのようにASを省いて書くこともできますが、可読性のためASを明示するのがおすすめです。
  • 元のテーブルには影響しない: この方法はあくまでクエリ結果上に列を追加するものであり、テーブル構造自体は変更されません。テーブル自体に列を追加したい場合はALTER TABLEを使用します。

用途に応じて使い分けることで、集計処理やデータの加工がより柔軟に行えるようになります。

  1. MySQLでタイムスタンプ列に基づいてデータを選択し、真偽値を設定する方法

    MySQLでタイムスタンプ列に基づいてデータを選択し、真偽値を設定する方法 MySQLではIF()関数を使うことで、タイムスタンプ列の値に基づいてデータを選択し、結果を真偽値(1または0)として取得できます。この記事では、実際のサンプルコードを交えながら手順を詳しく解説します。 まず、現在の日付を確認しておきましょう。 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-12-10 | +------------+ 1 row in set (0.00 sec) テーブルの作成 はじめに

  2. MySQLで45日後の日付を計算し、新しい列として表示するクエリの書き方

    MySQLで45日後の日付を新しい列に表示する方法 日付・時刻型の列に45日を加算し、その結果を元の列とは別の新しい列として表示したい場合は、date_add() 関数を使うのが最も簡単です。ここでは、テーブルの作成からデータの挿入、そして45日を加算するクエリの実行まで、手順を追って解説します。 1. テーブルを作成する まず、DATETIME型の列「DueTime」を持つテーブルを作成します。 mysql> create table DemoTable1930 ( DueTime datetime ); Query OK, 0 rows affected (