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

MySQLで文字列の末尾4文字を削除する方法

MySQLで末尾の4文字を削除する方法

カラム内の文字列から末尾の4文字を削除したい場合は、SUBSTRING()関数とUPDATEコマンドを組み合わせることで簡単に実現できます。この記事では、実際にテーブルを作成してデータを操作しながら、具体的な手順を解説します。

ステップ1:テーブルを作成する

まず、以下のCREATE TABLE文でサンプル用のテーブルを作成します。

mysql> create table DemoTable
(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentSubject varchar(100)
);
Query OK, 0 rows affected (0.57 sec)

ステップ2:レコードを挿入する

続いて、INSERTコマンドでいくつかのデータを登録します。

mysql> insert into DemoTable(StudentSubject) values('Introduction to Java');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentSubject) values('Introduction to C');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(StudentSubject) values('Introduction to C++');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(StudentSubject) values('Spring And Hibernate');
Query OK, 1 row affected (0.13 sec)

ステップ3:現在のデータを確認する

SELECT文でテーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

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

+-----------+----------------------+
| StudentId | StudentSubject       |
+-----------+----------------------+
| 1         | Introduction to Java |
| 2         | Introduction to C    |
| 3         | Introduction to C++  |
| 4         | Spring And Hibernate |
+-----------+----------------------+
4 rows in set (0.00 sec)

ステップ4:末尾4文字を削除するUPDATE文を実行する

末尾の4文字を削除するには、次のクエリを使用します。ポイントは、SUBSTRING()関数の第3引数に「LENGTH(カラム名)-4」を指定することです。これにより、先頭1文字目から「全体の長さから4文字引いた長さ」までの部分文字列を取得し、その結果で元の値を上書きしています。

mysql> update DemoTable set StudentSubject=SUBSTRING(StudentSubject, 1, LENGTH(StudentSubject)-4) ;
Query OK, 4 rows affected (0.16 sec)
Rows matched: 4 Changed: 4 Warnings: 0

ステップ5:更新結果を確認する

もう一度SELECT文を実行して、末尾の4文字が正しく削除されたかどうかを確認しましょう。

mysql> select *from DemoTable;

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

+-----------+------------------+
| StudentId | StudentSubject   |
+-----------+------------------+
| 1         | Introduction to  |
| 2         | Introduction     |
| 3         | Introduction to  |
| 4         | Spring And Hiber |
+-----------+------------------+
4 rows in set (0.00 sec)

出力を見ると、「Introduction to Java」が「Introduction to 」、「Spring And Hibernate」が「Spring And Hiber」に変わっていることがわかります。このように、末尾の4文字が正常に削除されました。

補足:日本語などのマルチバイト文字を扱う場合の注意点

LENGTH()関数はバイト数を返すため、日本語のようなマルチバイト文字列では意図どおりに動作しないことがあります。UTF-8環境では日本語1文字が3バイトになるため、文字数ベースで末尾を削除したい場合はCHAR_LENGTH()を使用するのが安全です。

mysql> update DemoTable set StudentSubject=SUBSTRING(StudentSubject, 1, CHAR_LENGTH(StudentSubject)-4);
  1. MySQLの一時テーブルを削除する方法|DROP TABLE文の使い方と確認手順

    MySQLの一時テーブル(TEMPORARY TABLE)は、現在のセッションが終了すると自動的に削除される仕組みになっています。 しかし、セッションが続いている最中に「もう不要になった」と判断することもあるでしょう。そのような場合は、DROP TABLE文を使うことで、任意のタイミングで一時テーブルを明示的に削除できます。 一時テーブルを削除する基本構文 DROP TABLE テーブル名; 通常のテーブルと同じく、DROP TABLE文に続けてテーブル名を指定するだけで削除できます。 実行例:SalesSummaryテーブルの削除 ここでは、「SalesSummary」という名前の一時テ

  2. MySQLでテーブルの最後の10件のレコードを取得する方法

    MySQLでテーブルの末尾にある10行(最新の10件)を取得したい場合は、SELECT文とLIMIT句を組み合わせたサブクエリを利用します。この記事では、実際にテーブルを作成し、データを挿入しながら、最後の10件を取得するクエリの手順を具体的に解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected