MySQLで文字列の末尾から指定した文字数を切り取る方法
MySQLで文字列の末尾から指定文字数を削除する方法
MySQLでは、substring()関数とlength()関数を組み合わせることで、文字列の末尾(最後)から指定した文字数を簡単に切り取ることができます。
基本的な考え方は、「文字列全体の長さから削除したい文字数を引いた値」をsubstring()の第3引数に指定するというものです。以下、具体的な手順をサンプルコードとともに見ていきましょう。
1. サンプルテーブルの作成
まず、テスト用のテーブルを作成します。
mysql> create table DemoTable1329 -> ( -> StudentName varchar(40) -> ); Query OK, 0 rows affected (0.52 sec)
2. レコードの挿入
insertコマンドを使って、いくつかのレコードを挿入します。
mysql> insert into DemoTable1329 values('David Miller');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1329 values('Chris Brown');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1329 values('Adam Smith');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable1329 values('John Doe');
Query OK, 1 row affected (0.44 sec)
3. テーブル内容の確認
select文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1329;
実行結果は以下のとおりです。
+--------------+ | StudentName | +--------------+ | David Miller | | Chris Brown | | Adam Smith | | John Doe | +--------------+ 4 rows in set (0.00 sec)
4. 末尾から指定文字数を切り取るクエリ
ここが本題です。末尾から5文字を削除するには、次のようなクエリを実行します。
mysql> select substring(StudentName, 1, length(StudentName) - 5) from DemoTable1329;
実行結果:
+----------------------------------------------------+ | substring(StudentName, 1, length(StudentName) - 5) | +----------------------------------------------------+ | David M | | Chris | | Adam | | Joh | +----------------------------------------------------+ 4 rows in set (0.00 sec)
クエリの仕組み
このクエリがどのように動作するのか、分解して解説します。
- length(StudentName):各文字列の全長を取得します。例えば「David Miller」なら12文字です。
- length(StudentName) - 5:全長から5を引くことで、残したい部分の長さを計算します。「David Miller」の場合は7文字になります。
- substring(StudentName, 1, …):文字列の先頭(位置1)から、計算した長さ分だけ文字を抽出します。
その結果、「David Miller」→「David M」、「Chris Brown」→「Chris」、「Adam Smith」→「Adam」、「John Doe」→「Joh」となり、それぞれの名前の末尾5文字が正しく削除されました。
補足:マルチバイト文字を扱う場合の注意点
日本語などのマルチバイト文字を含むカラムに対しては、length()の代わりに文字数を返すchar_length()を使うのが安全です。length()はバイト数を返すため、UTF-8環境では日本語1文字が3バイトとしてカウントされ、意図しない結果になる可能性があります。
select substring(カラム名, 1, char_length(カラム名) - 削除したい文字数) from テーブル名;
このようにsubstring()とlength()(またはchar_length())を組み合わせれば、末尾から任意の文字数を柔軟にトリムできます。データクレンジングや表示用の文字列整形など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。
-
Swiftで文字列の最後の4文字を抽出する方法|substringとsuffixの使い方を解説
Swiftで文字列の末尾から4文字を抽出したい場合、Stringクラスが標準で提供している機能を活用できます。Swiftはバージョンアップのたびにメソッドの追加・非推奨化・改善が繰り返されてきたため、同じ目的を実現するための手段も複数存在します。本記事では、バージョンごとの代表的な抽出方法をサンプルコード付きでわかりやすく解説します。方法1:substringを使う(Swift 3)Swift 3では、substring(from:)メソッドを使って文字列の一部を切り出すことができました。文字列の終了インデックスからオフセットを指定することで、末尾の文字を取得できます。var Str1 = &
-
MySQLでテーブルの最後の10件のレコードを取得する方法
MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected