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

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」から始まる点に注意して、ぜひ活用してみてください。

  1. MySQLで0と1の値を扱うカラムにはENUM型とTINYINT型のどちらを使うべきか?

    結論:0と1の値にはTINYINT型を使用するMySQLで「0」と「1」という2つの値のみを扱うフィールド(例:結婚しているかどうか、有効・無効のフラグなど)を作成する場合、ENUM型よりもTINYINT型を使用するのが推奨されます。TINYINTは1バイトの整数型で、ストレージ効率が良く、インデックスや比較処理も高速に動作します。ここからは、実際にTINYINT型のカラムを持つテーブルを作成し、データを操作する手順を紹介します。1. テーブルの作成まず、TINYINT型のカラムを持つテーブルを作成します。mysql> create table DemoTable -> (

  2. 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を含む複数のレコードを