MySQLで文字列の先頭1文字を除いて取得する方法|SUBSTR関数の使い方を解説
MySQLでは、SUBSTR()関数を使うことで、文字列の先頭1文字を除いた残りの部分を簡単に抽出できます。この記事では、実際にテーブルを作成し、データを挿入して、SUBSTR()関数の動作を確認する手順をわかりやすく解説します。
SUBSTR()関数とは
SUBSTR()は、文字列の指定した位置から部分文字列を取り出すためのMySQLの文字列関数です。第2引数に「2」を指定すると、2文字目以降(つまり先頭1文字を除いた部分)が返されます。なお、SUBSTRING()はSUBSTR()の別名であり、どちらを使っても同じ結果になります。
サンプルテーブルの作成
まず、検証用のテーブルを作成します。
mysql> create table DemoTable
(
FirstName varchar(20)
);
Query OK, 0 rows affected (0.63 sec)
レコードの挿入
次に、INSERTコマンドを使ってサンプルデータを登録します。
mysql> insert into DemoTable values('Larry');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.14 sec)
登録データの確認
SELECTコマンドでテーブルの中身を表示してみましょう。
mysql> select *from DemoTable;
実行すると、次のような結果が出力されます。
+-----------+ | FirstName | +-----------+ | Larry | | Carol | | Robert | | David | +-----------+ 4 rows in set (0.00 sec)
先頭1文字を除いた文字列を取得するクエリ
ここが本題です。SUBSTR(カラム名, 2)と指定することで、先頭1文字を除いたすべての文字を取得できます。
mysql> select substr(FirstName,2) from DemoTable;
実行結果は以下のとおりです。
+---------------------+ | substr(FirstName,2) | +---------------------+ | arry | | arol | | obert | | avid | +---------------------+ 4 rows in set (0.00 sec)
補足:応用的な使い方
- 先頭のN文字を除去したい場合:
SELECT SUBSTR(FirstName, N + 1) FROM DemoTable;のように、開始位置を調整するだけで対応できます。 - 取り出す文字数を指定したい場合: 第3引数で長さを指定できます。例:
SUBSTR(FirstName, 2, 3)は2文字目から3文字分を返します。 - 日本語(マルチバイト文字)を扱う場合: 文字数ベースで処理したいときは
SUBSTR()をそのまま使えますが、バイト数ベースのSUBSTRB()的な挙動が必要な場合は文字コードに注意してください。
このように、SUBSTR()関数の開始位置に「2」を指定するだけで、MySQLにおいて文字列の先頭1文字を除いた値をシンプルに取得することができます。
-
PHPで文字列の先頭の文字を削除する方法
PHPで文字列の先頭(最初)の文字を削除するには、主に2つの方法があります。substr()関数を使う方法と、ltrim()関数を使う方法です。それぞれ具体的なコード例とともに解説します。方法1:substr()関数を使うsubstr()関数は、文字列の指定した位置から部分文字列を取得します。開始位置に「1」を指定することで、先頭の1文字を除外した文字列を取得できます。コード例<?php $str = Test; echo 削除前の文字列 = .$str;
-
C#で文字列の最初の文字を取得するには?
C#で文字列の先頭の1文字を取得したい場合、Substring()メソッドを使うのが最もシンプルで一般的な方法です。対象となる文字列の例まず、次のような文字列があったとします。string str = Welcome to the Planet!;Substring()メソッドで最初の文字を取り出す最初の文字だけを取得するには、Substring(0, 1)のように、開始位置「0」から抽出する長さ「1」を指定します。string res = str.Substring(0, 1);これで変数 res には文字列の1文字目だけが格納されます。サンプルコード(完全版)実際に動作するコード全体は以下