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

MySQLのSELECT文でフィールド(列)を生成する方法

MySQLのSELECT文でフィールドを生成するには?

MySQLでは、SELECT文の中で AS キーワードを使用することで、テーブルに実際には存在しない新しいフィールド(仮想列)を生成し、結果セットに含めることができます。固定値や計算結果に別名を付けて出力できるため、レポート作成やデータ加工の際に非常に便利です。

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

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

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

mysql> insert into DemoTable(Name) values('John');
Query OK, 1 row affected (0.50 sec)
mysql> insert into DemoTable(Name) values('Robert');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.54 sec)

SELECT文でテーブル内のすべてのレコードを表示して確認してみましょう。

mysql> select *from DemoTable;

出力結果

+----+--------+
| Id | Name   |
+----+--------+
| 1  | John   |
| 2  | Robert |
| 3  | David  |
+----+--------+
3 rows in set (0.00 sec)

SELECT文でフィールドを生成するクエリ

MySQLのSELECT文で新しいフィールドを生成するクエリは以下のとおりです。文字列リテラル「US」に対して AS CountryName という別名を指定することで、既存の列とは別の新しい列として結果に出力されます。

mysql> select Id,Name,'US' AS CountryName from DemoTable;

出力結果

+----+--------+-------------+
| Id | Name   | CountryName |
+----+--------+-------------+
| 1  | John   | US          |
| 2  | Robert | US          |
| 3  | David  | US          | 
+----+--------+-------------+
3 rows in set (0.00 sec)

このように、AS キーワードを使えば、実際のテーブルには存在しないフィールドでもSELECT文の結果に自由に追加できます。すべての行に同じ値が出力される点に注意してください。なお、AS は省略することも可能で、select Id, Name, 'US' CountryName from DemoTable; のように記述しても同じ結果が得られます。

  1. MySQLで再帰的なSELECTクエリを実行する方法【初心者向けに具体例つきで解説】

    MySQLでは、ユーザー定義変数(セッション変数)を活用することで、再帰的なSELECTクエリを実現できます。本記事では、実際にテーブルを作成し、データを挿入したうえで、再帰的なSELECTの具体的な書き方を順を追って解説します。 1. サンプルテーブルの作成 まず、再帰的なSELECTを試すためのサンプルテーブルを作成します。テーブルの作成にはCREATEコマンドを使用します。 mysql> CREATE table tblSelectDemo - > ( - > id int, - > name varchar(100) - > );

  2. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected