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

MySQLで列の部分文字列(サブストリング)を取得する方法

MySQLのSUBSTR()関数を使って列の部分文字列を抽出する

MySQLでは、SUBSTR()関数を使用することで、テーブルの列から任意の位置の部分文字列(サブストリング)を簡単に抽出できます。この関数は、開始位置と取得する文字数を指定するだけで動作し、文字列の先頭や中間、末尾付近のデータだけを取り出したい場合に非常に便利です。

以下に、実際の手順を順番に解説していきます。

1. サンプルテーブルを作成する

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

mysql> create table DemoTable
-> (
-> Title text
-> );
Query OK, 0 rows affected (0.74 sec)

ここでは「Title」というtext型の列を持つ「DemoTable」を作成しました。

2. レコードを挿入する

次に、INSERTコマンドを使ってテーブルにレコードを追加します。

mysql> insert into DemoTable values('This is a MySQL Database');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('Java is an Object Oriented Programming Language');
Query OK, 1 row affected (0.17 sec)

3. テーブルの内容を確認する

SELECT文ですべてのレコードを表示して、正しく挿入されているか確認します。

mysql> select *from DemoTable ;

出力結果

上記のクエリを実行すると、次のような出力が得られます。

+-------------------------------------------------+
| Title |
+-------------------------------------------------+
| This is a MySQL Database |
| Java is an Object Oriented Programming Language |
+-------------------------------------------------+
2 rows in set (0.00 sec)

4. SUBSTR()で部分文字列を抽出する

いよいよ本題です。SUBSTR()関数を使って、Title列の先頭8文字を抽出してみましょう。

mysql> SELECT distinct(substr(Title, 1, 8)) from DemoTable;

このクエリのポイントは以下のとおりです。

  • 第1引数(Title):対象となる列名
  • 第2引数(1):抽出を開始する文字位置(1が先頭)
  • 第3引数(8):抽出する文字数

また、distinctを組み合わせることで、重複した抽出結果を除外しています。

出力結果

実行すると、各タイトルの先頭8文字が抽出され、次のような結果になります。

+-----------------------+
| (substr(Title, 1, 8)) |
+-----------------------+
| This is |
| Java is |
+-----------------------+
2 rows in set (0.00 sec)

まとめ

SUBSTR()関数を使えば、MySQLの列データから必要な部分だけを柔軟に取り出せます。開始位置や文字数を変えれば、末尾からの抽出や中間部分の切り出しにも対応できます。なお、SUBSTRING()関数も同様の機能を持っており、どちらを使っても同じ結果が得られます。ログデータの整形やキーワード抽出など、日常的なデータ処理でぜひ活用してください。

  1. MySQLで選択した行のサイズを取得する方法|CHAR_LENGTH()関数の使い方

    MySQLで選択した行のサイズを取得する方法MySQLで選択した行のサイズ(文字数)を取得するには、CHAR_LENGTH()関数を使用します。この関数は文字列の長さを返すため、SUM()関数と組み合わせることで、複数行にわたる合計サイズを簡単に算出できます。ここでは、実際にテーブルを作成しながら手順を詳しく解説していきます。ステップ1:テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1612    -> (    -> Fi

  2. MySQLで列の最大値を取得する方法をわかりやすく解説

    MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(