MySQLのLEFT()関数で値の先頭200文字だけを表示する方法
MySQLでは、LEFT()関数を使うことで、カラムに格納された長いテキスト値の中から、先頭の指定した文字数だけを取り出して表示することができます。記事の一覧画面などで本文の冒頭部分だけをプレビュー表示したい場合に非常に便利な機能です。
LEFT()関数の基本構文
SELECT LEFT(yourColumnName, 200) AS anyAliasName FROM yourTableName;
第1引数に対象のカラム名、第2引数に取得したい文字数を指定します。AS句を使えば、結果セットの列にわかりやすい別名を付けることも可能です。
サンプルテーブルの作成
まずは動作を確認するためのテーブルを作成しましょう。ここではlongtext型のカラムを持つテーブルを定義します。
mysql> create table DemoTable (Paragraph longtext);
Query OK, 0 rows affected (0.71 sec)
レコードの挿入
次に、INSERTコマンドを使ってサンプルデータを挿入します。
mysql> insert into DemoTable values('Introduction to Java,Introduction to C,Introduction to C++,Introduction to Spring,Introduction to Hibernate,Introduction to Python,Introduction to MySQL,Introduction to MongoDB,Introduction to SQL Server,Introduction to ASP.net,Introduction to JSF');
Query OK, 1 row affected (0.13 sec)登録データの確認
SELECTコマンドでテーブルの内容を確認してみます。
mysql> select *from DemoTable;
実行すると、以下のように全文が表示されます。
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Paragraph |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Introduction to Java,Introduction to C,Introduction to C++,Introduction to Spring,Introduction to Hibernate,Introduction to Python,Introduction to MySQL,Introduction to MongoDB,Introduction to SQL Server,Introduction to ASP.net,Introduction to JSF |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
先頭200文字だけを表示するクエリ
それでは本題です。LEFT()関数を使って、値全体から先頭200文字のみを抽出して表示してみましょう。
mysql> select left(Paragraph, 200) AS `200Characters` from DemoTable;
実行結果は以下のとおりです。元の値のうち、最初の200文字だけが表示されていることが確認できます。
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 200Characters |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Introduction to Java,Introduction to C,Introduction to C++,Introduction to Spring,Introduction to Hibernate,Introduction to Python,Introduction to MySQL,Introduction to MongoDB,Introduction to SQL Ser |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
補足:RIGHT()関数との違い
LEFT()が「先頭から」文字を取得するのに対し、末尾から文字を取得したい場合はRIGHT()関数を使用します。また、日本語などのマルチバイト文字を扱う場合は、SUBSTRING()関数や文字コード(utf8mb4など)にも注意すると、より安全に文字数を制御できます。
-
MySQLでタイムスタンプ(UNIX時間)から日付のみを表示する方法
タイムスタンプ(UNIX時間)の値から日付を表示するには、MySQLのFROM_UNIXTIME()関数を使用します。この関数は、UNIXタイムスタンプを「YYYY-MM-DD HH:MM:SS」形式の日時に変換してくれます。ここでは、実際にテーブルを作成し、動作を確認していきましょう。 サンプルテーブルの作成 まず、タイムスタンプ値を格納するためのテーブルを作成します。 mysql> create table DemoTable -> ( -> timestampValue bigint -> ); Query OK, 0 rows affe
-
MySQLで他のカラムの値から新しいカラムの値を導出する方法
MySQLではユーザー定義変数(ユーザー変数)を活用することで、既存のカラムの値をもとに別のカラムの値を計算・導出できます。本記事では、累積和(累積合計)を求める具体例を通して、その方法をわかりやすく解説します。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable1868 ( Value int ); Query OK, 0 rows affected (0.00 sec)レコードの挿入insertコマンドを使って、テーブルにデータを挿入します。mysql> insert into DemoTable1