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

MySQLでカラムの末尾2文字を削除する方法

MySQLでは、SUBSTRING()関数とCHAR_LENGTH()関数を組み合わせることで、文字列の末尾から任意の文字数(ここでは2文字)を簡単に取り除くことができます。

基本構文

select yourColumnName,
       SUBSTRING(yourColumnName, 1, CHAR_LENGTH(yourColumnName) - 2) AS anyVariableName
from yourTableName;

SUBSTRING(文字列, 開始位置, 文字数)は、先頭から指定した文字数分だけ文字列を抽出する関数です。全体の文字数から2を引いた値を指定することで、末尾2文字を除いた部分だけを取得できます。なお、SUBSTRING()はバイト数ではなく文字数を基準に動作するため、日本語などのマルチバイト文字でも安全に処理できます。

サンプルテーブルの作成

まず、動作を確認するためのテーブルを作成しましょう。

mysql> create table LastTwoCharacters
    -> (
    -> Words varchar(200)
    -> );
Query OK, 0 rows affected (0.71 sec)

テストデータの挿入

次に、INSERT文を使ってテストデータを登録します。

mysql> insert into LastTwoCharacters values('Hellooo');
Query OK, 1 row affected (0.23 sec)

mysql> insert into LastTwoCharacters values('Worldsss');
Query OK, 1 row affected (0.10 sec)

mysql> insert into LastTwoCharacters values('Johnson');
Query OK, 1 row affected (0.22 sec)

登録データの確認

SELECT文ですべてのレコードを表示します。

mysql> select * from LastTwoCharacters;

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

+----------+
| Words    |
+----------+
| Hellooo  |
| Worldsss |
| Johnson  |
+----------+
3 rows in set (0.00 sec)

末尾2文字を削除するクエリ

それでは、実際にカラムの末尾2文字を削除してみましょう。

mysql> select Words,
       SUBSTRING(Words,1,CHAR_LENGTH(Words) - 2) AS AfterStripLastTwoChar
       from LastTwoCharacters;

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

+----------+-----------------------+
| Words    | AfterStripLastTwoChar |
+----------+-----------------------+
| Hellooo  | Hello                 |
| Worldsss | Worlds                |
| Johnson  | Johns                 |
+----------+-----------------------+
3 rows in set (0.00 sec)

結果の解説

出力結果を見ると、「Hellooo」→「Hello」、「Worldsss」→「Worlds」、「Johnson」→「Johns」となり、それぞれの文字列から正しく末尾2文字が削除されていることが確認できます。

この手法は、余計な接尾辞や不要な記号を一括して除去したい場合などに便利です。削除したい文字数が変わる場合は、CHAR_LENGTH()から引く数値を変更するだけで柔軟に対応できます。

  1. MySQLで列の値から末尾の2文字を削除するクエリの書き方

    MySQLではLEFT()関数を使うことで、文字列の先頭から指定した文字数だけを取り出すことができます。この関数とLENGTH()関数を組み合わせれば、テーブル内のすべての列の値から末尾の2文字を簡単に削除できます。 まずは、動作を確認するためのサンプルテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Name varchar(10) -> ); Query OK, 0 rows affected (0.71 sec) 次に、INSERT文を使ってレコードを挿入します。 mysql> i

  2. MySQLのREPLACE関数で列の値に含まれる文字列を一括置換する方法

    はじめにMySQLでは、UPDATE文とREPLACE()関数を組み合わせることで、テーブルの列に含まれる特定の文字列(特殊文字など)を簡単に一括置換できます。この記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable1574 -> ( -> StudentCode varchar(20) -> );Query OK, 0 rows affected (0.59 sec)レコードの挿入次に、INSERTコマンドを