【MySQL】LEFT関数で文字列の最初のアルファベットを抽出して表示する方法
文字列から最初の1文字(アルファベット)を取得したい場合は、MySQLのLEFT()関数を使用します。LEFT()は文字列の左端から指定した数の文字を返す関数で、UPPER()と組み合わせれば抽出した文字を大文字に変換して表示することもできます。
サンプルテーブルの作成
まず、動作を確認するためのテーブルを作成しましょう。
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName varchar(100)
);
Query OK, 0 rows affected (1.03 sec)レコードの挿入
INSERT文を使って、テーブルにいくつかのレコードを追加します。
mysql> insert into DemoTable(FirstName) values('John');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(FirstName) values('Adam');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(FirstName) values('Jace');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable(FirstName) values('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(FirstName) values('Carol');
Query OK, 1 row affected (0.11 sec)テーブルの内容を確認する
SELECT文ですべてのレコードを表示してみます。
mysql> select *from DemoTable;
実行結果は以下の通りです。
+----+-----------+ | Id | FirstName | +----+-----------+ | 1 | John | | 2 | Adam | | 3 | Jace | | 4 | Chris | | 5 | Bob | | 6 | Carol | +----+-----------+ 6 rows in set (0.00 sec)
最初のアルファベットを新しい列として表示する
文字列が格納された列から最初のアルファベットを取り出し、新しい列として表示するには、以下のようなクエリを実行します。
mysql> select Id,FirstName,upper(left(FirstName,1)) AS FirstLetter from DemoTable order by FirstName;
実行結果は以下の通りです。
+----+-----------+-------------+ | Id | FirstName | FirstLetter | +----+-----------+-------------+ | 2 | Adam | A | | 5 | Bob | B | | 6 | Carol | C | | 4 | Chris | C | | 3 | Jace | J | | 1 | John | J | +----+-----------+-------------+ 6 rows in set (0.03 sec)
クエリのポイント
left(FirstName,1)でFirstName列の左端から1文字を取り出し、それをupper()で大文字に変換しています。AS句で「FirstLetter」という別名を付けることで、結果が読みやすくなります。さらにorder by FirstNameを指定しているため、名前がアルファベット順に並べ替えられて出力されます。この手法は、名前のイニシャル一覧や索引(インデックス)表示など、さまざまな場面で活用できます。
-
MySQLでGROUP BYを使って学生ごとの点数をグループ化し、合計点数を表示する方法
はじめにMySQLで学生ごとに点数(マーク)をグループ化し、それぞれの合計点数を求めるには、GROUP BY句とSUM()関数を組み合わせて使用します。本記事では、実際のサンプルコードと実行結果をもとに、その手順をわかりやすく解説します。1. サンプルテーブルを作成するまず、学生名と点数を格納するためのテーブルを作成します。mysql> create table DemoTable1920 ( StudentName varchar(20), StudentMarks int );Query
-
複数行の文字列を1行に結合し、対応するIDの合計も表示するMySQLクエリの書き方
GROUP_CONCAT()とSUM()を組み合わせた集計方法複数行に分かれた文字列を1つの行にまとめて結合し、さらにIDの合計値を別の列として同時に表示したい場合は、GROUP_CONCAT()関数とSUM()関数を組み合わせることで実現できます。ここでは、実際にテーブルを作成し、動作を確認する手順を見ていきましょう。1. サンプルテーブルの作成まず、学生IDと学生名を持つテーブルを作成します。mysql> create table DemoTable1960 ( StudentId int, StudentName varchar(20) ); Que