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; のように記述しても同じ結果が得られます。
-
MySQLで再帰的なSELECTクエリを実行する方法【初心者向けに具体例つきで解説】
MySQLでは、ユーザー定義変数(セッション変数)を活用することで、再帰的なSELECTクエリを実現できます。本記事では、実際にテーブルを作成し、データを挿入したうえで、再帰的なSELECTの具体的な書き方を順を追って解説します。 1. サンプルテーブルの作成 まず、再帰的なSELECTを試すためのサンプルテーブルを作成します。テーブルの作成にはCREATEコマンドを使用します。 mysql> CREATE table tblSelectDemo - > ( - > id int, - > name varchar(100) - > );
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected