MySQLのLEFT関数で文字列の左側から指定した文字数を取得する方法
MySQLのLEFT関数で文字列の左側から一部を取得する
文字列の先頭(左側)から指定した文字数だけ抽出したい場合には、MySQLのLEFT()関数を使用します。書式は「LEFT(カラム名, 取得する文字数)」となり、第1引数に対象の文字列、第2引数に抽出する文字数を指定します。
それでは、実際にテーブルを作成して動作を確認してみましょう。
1. テーブルの作成
まず、以下のコマンドでテーブルを作成します。
mysql> create table DemoTable
-> (
-> Title text
-> );
Query OK, 0 rows affected (0.59 sec)
2. レコードの挿入
次に、insertコマンドを使ってテーブルにサンプルデータを挿入します。
mysql> insert into DemoTable values('Java database connectivity to MySQL database');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Python with django framework');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('C with data structure and algorithm');
Query OK, 1 row affected (0.33 sec)3. 登録されたレコードの確認
select文を実行して、テーブル内のすべてのレコードを表示してみます。
mysql> select *from DemoTable;
実行すると、次のような結果が得られます。
+----------------------------------------------+
| Title |
+----------------------------------------------+
| Java database connectivity to MySQL database |
| Python with django framework |
| C with data structure and algorithm |
+----------------------------------------------+
3 rows in set (0.00 sec)
4. LEFT関数で左側から文字を抽出する
ここからが本題です。MySQLで文字列の左側から指定した文字数を取得するには、以下のようにLEFT関数を使用します。この例では、Titleカラムの先頭10文字を抽出しています。
mysql> select left(Title,10) as Title from DemoTable;
実行結果は以下の通りです。
+-----------------+
| Title |
+-----------------+
| Java datab |
| Python wit |
| C with dat |
+-----------------+
3 rows in set (0.00 sec)
このように「LEFT(Title, 10)」と指定することで、各レコードのTitleカラムから先頭10文字だけを取り出すことができます。なお、LEFT関数は文字数ベースで動作するため、UTF-8環境であれば日本語などのマルチバイト文字も正しく扱えます。また、右側から抽出したい場合はRIGHT関数を、部分一致検索にはLIKE句やSUBSTRING関数を組み合わせると便利です。
-
MySQLで月の範囲を指定してレコードを取得する方法
MySQLでは、YEAR()関数とMONTH()関数、さらにBETWEEN演算子を組み合わせることで、特定の月の範囲に該当するレコードを簡単に抽出できます。ここでは、前年の7月〜12月と当年の1月〜7月というように、年をまたいだ月の範囲でデータを取得する方法を解説します。 サンプルテーブルの作成 まず、テーブルを作成します。 mysql> create table DemoTable1795 ( Name varchar(20), DueDate date
-
MySQLで列から最大値を取得する方法
MySQLで列の最大値を取得するには?MySQLのテーブルから特定の列の最大値を取得するには、ORDER BY句とLIMIT句を組み合わせる方法が便利です。ここでは、実際にテーブルを作成し、データを挿入して、最大値を取得する手順を順番に解説します。1. テーブルを作成するまず、以下のコマンドでサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.63 sec)2. レコードを挿入する次に、INSERTコ