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

【MySQL】SUBSTRING()で列から先頭N文字を取得する方法

MySQLの列から先頭N文字を取得するには?

MySQLでは、SUBSTRING()関数を使うことで、列の値から先頭N文字を簡単に抽出できます。この記事では、実際にテーブルを作成し、データを登録したうえで、先頭10文字を取得するまでの手順を順番に解説します。

1. テーブルを作成する

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
(
    Information text
);
Query OK, 0 rows affected (2.63 sec)

2. レコードを挿入する

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

mysql> insert into DemoTable values('MySQL is a structured query language');
Query OK, 1 row affected (0.13 sec)

3. 登録データを確認する

select文でテーブル内の全レコードを表示してみます。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+--------------------------------------+
| Information                          |
+--------------------------------------+
| MySQL is a structured query language |
+--------------------------------------+
1 row in set (0.00 sec)

4. 先頭N文字を抽出する

列から先頭N文字を取得するには、SUBSTRING(列名, 開始位置, 文字数)のように指定します。ここでは、先頭10文字を取り出す例を見ていきましょう。

mysql> select substring(Information,1,10) from DemoTable;

実行すると、次のような結果が得られます。

+-----------------------------+
| substring(Information,1,10) |
+-----------------------------+
| MySQL is a                  |
+-----------------------------+
1 row in set (0.00 sec)

このように、開始位置を「1」、文字数を「10」と指定すれば、列の値の先頭から10文字だけを抜き出せます。
なお、SUBSTRING()の位置指定は「0」ではなく「1」から始まる点に注意してください。また、同様の機能を持つLEFT(列名, N)関数を使えば、よりシンプルに先頭N文字を取得することも可能です。

  1. MySQLで予約語「from」を列名として使用する方法

    MySQLで「from」を列名として使うには? MySQLでは「from」は予約語(リザーブドワード)として登録されているため、そのまま列名として使用するとエラーが発生します。しかし、バッククォート(`` ` ``)で囲むことで、予約語である「from」を列名として扱うことができます。 この記事では、実際にテーブルを作成し、「from」を列名としてデータの挿入や取得を行う手順を解説します。 1. バッククォートを使ってテーブルを作成する まず、列名「from」をバッククォートで囲んでテーブルを作成します。以下のSQLを実行してください。 mysql> create table Demo

  2. MySQLのSELECT文で特定のカラム(列)のレコードを取得する方法

    はじめにMySQLでSELECTクエリを実行する際、SELECT *を使うとすべてのカラムが取得されますが、カラム名を明示的に指定すれば、必要なカラム(列)のデータだけを効率的に取り出せます。この記事では、サンプルテーブルを作成しながら、特定のカラムのレコードを取得する手順を解説します。1. テーブルの作成まず、CREATE TABLE文でサンプル用のテーブルを作成しましょう。mysql> create table DemoTable1837    (    StudentId int NOT NULL AU