MySQLで列の値から末尾の2文字を削除するクエリの書き方
MySQLではLEFT()関数を使うことで、文字列の先頭から指定した文字数だけを取り出すことができます。この関数とLENGTH()関数を組み合わせれば、テーブル内のすべての列の値から末尾の2文字を簡単に削除できます。
まずは、動作を確認するためのサンプルテーブルを作成しましょう。
mysql> create table DemoTable
-> (
-> Name varchar(10)
-> );
Query OK, 0 rows affected (0.71 sec)
次に、INSERT文を使ってレコードを挿入します。
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.11 sec)
SELECT文でテーブル内の全レコードを表示して確認します。
mysql> select *from DemoTable;
実行すると、次のような出力が得られます。
+--------+ | Name | +--------+ | John | | Chris | | Robert | +--------+ 3 rows in set (0.00 sec)
末尾の2文字を削除するクエリ
それでは本題となる、各列の値から末尾の2文字を削除するクエリを見ていきましょう。LEFT()関数の第2引数に「文字列の長さ − 2」を指定することで、末尾の2文字を除外した文字列を取得できます。
mysql> select left(Name,length(Name)-2) from DemoTable;
実行結果は以下の通りです。
+---------------------------+ | left(Name,length(Name)-2) | +---------------------------+ | Jo | | Chr | | Robe | +---------------------------+ 3 rows in set (0.02 sec)
このように、「John」は「Jo」、「Chris」は「Chr」、「Robert」は「Robe」となり、それぞれの値から末尾の2文字が正しく削除されていることが確認できます。
クエリのポイント解説
- LEFT(文字列, n):文字列の左端からn文字分を返します。
- LENGTH(文字列):文字列のバイト長を返します。日本語などのマルチバイト文字を扱う場合は、文字数ベースで計算できるCHAR_LENGTH()を使うとより安全です。
- length(Name)-2:元の文字列の長さから2を引くことで、末尾2文字を除いた長さを指定しています。
-
MySQLのREPLACE関数で列の値に含まれる文字列を一括置換する方法
はじめにMySQLでは、UPDATE文とREPLACE()関数を組み合わせることで、テーブルの列に含まれる特定の文字列(特殊文字など)を簡単に一括置換できます。この記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable1574 -> ( -> StudentCode varchar(20) -> );Query OK, 0 rows affected (0.59 sec)レコードの挿入次に、INSERTコマンドを
-
MySQLで列の値ごとに「NO」の件数のみをカウントして返すクエリの書き方
MySQLでは、SUM()関数と条件式を組み合わせることで、グループごとに特定の値(この例では「NO」)が出現した回数だけをカウントできます。ここでは、ENUM型のカラムを持つテーブルを例に、「NO」の件数のみを集計する方法を具体的な手順とともに解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成します。isTopperカラムはENUM型で、「YES」または「NO」のいずれかの値を持ちます。 mysql> create table DemoTable1829 ( Name varchar(