MySQLのSUBSTRING()関数でフィールドから部分文字列を抽出する方法
MySQLでは、SUBSTRING()関数を使うことで、フィールドに格納された文字列の一部を簡単に抽出できます。この記事では、基本的な構文から実際の使用例まで、順を追って解説します。
SUBSTRING()関数の基本構文
テーブルのフィールドから部分文字列を取得するには、以下の構文を使用します。
SELECT SUBSTRING(カラム名, 開始位置, 文字数) FROM テーブル名;
各引数の意味は次のとおりです。
- カラム名:抽出元となるフィールドの名前
- 開始位置:文字列の抽出を開始する位置(MySQLでは先頭が「1」から始まります)
- 文字数:抽出する文字数(省略した場合は開始位置から末尾まで)
実際に試してみよう
1. テーブルを作成する
まず、サンプル用のテーブルを作成します。
mysql> CREATE TABLE DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Title longtext
);
Query OK, 0 rows affected (0.57 sec)
2. レコードを挿入する
INSERT文を使って、テーブルにデータを登録します。
mysql> INSERT INTO DemoTable(Title) VALUES('MySQL is a relational database management system');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable(Title) VALUES('MongoDB is a popular No SQL database');
Query OK, 1 row affected (0.18 sec)
3. 登録データを確認する
SELECT文で、テーブル内のすべてのレコードを表示してみましょう。
mysql> SELECT * FROM DemoTable;
実行結果は以下のとおりです。
+----+--------------------------------------------------+ | Id | Title | +----+--------------------------------------------------+ | 1 | MySQL is a relational database management system | | 2 | MongoDB is a popular No SQL database | +----+--------------------------------------------------+ 2 rows in set (0.00 sec)
SUBSTRING()を使った抽出クエリ
それでは、SUBSTRING()関数を使ってフィールドから文字列の一部を抽出してみます。ここでは、先頭から21文字分を取得します。
mysql> SELECT SUBSTRING(Title, 1, 21) FROM DemoTable;
実行結果は以下のとおりです。
+-----------------------+ | SUBSTRING(Title,1,21) | +-----------------------+ | MySQL is a relational | | MongoDB is a popular | +-----------------------+ 2 rows in set (0.00 sec)
まとめ
SUBSTRING()関数を使えば、長いテキストから必要な部分だけを取り出すことができます。記事のタイトルや概要の先頭部分だけを一覧表示したい場合など、実務でも非常に便利な関数です。開始位置が「0」ではなく「1」から始まる点に注意して、ぜひ活用してみてください。
-
MySQLで0と1の値を扱うカラムにはENUM型とTINYINT型のどちらを使うべきか?
結論:0と1の値にはTINYINT型を使用するMySQLで「0」と「1」という2つの値のみを扱うフィールド(例:結婚しているかどうか、有効・無効のフラグなど)を作成する場合、ENUM型よりもTINYINT型を使用するのが推奨されます。TINYINTは1バイトの整数型で、ストレージ効率が良く、インデックスや比較処理も高速に動作します。ここからは、実際にTINYINT型のカラムを持つテーブルを作成し、データを操作する手順を紹介します。1. テーブルの作成まず、TINYINT型のカラムを持つテーブルを作成します。mysql> create table DemoTable -> (
-
MySQLでNULL値を1として表示・更新する方法
MySQLでは、テーブル内のNULL値を別の値(たとえば「1」)に置き換えて扱いたい場面があります。この記事では、IFNULL関数とUPDATE文を組み合わせて、NULL値を1に変換する具体的な手順をサンプルコード付きで解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1963 ( Counter int ); Query OK, 0 rows affected (0.00 sec) 2. レコードを挿入する INSERT文を使って、NULLを含む複数のレコードを