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

MySQLで文字列の先頭15文字だけを表示するクエリの書き方

MySQLで文字列の先頭(左側)から指定した文字数だけを取り出すには、LEFT()関数を使用します。第1引数に対象の文字列、第2引数に取得したい文字数を指定するだけで、手軽に部分文字列を抽出できます。

この記事では、テーブルに登録されたタイトルの先頭15文字だけを表示する方法を、実際のSQLと実行結果付きで順を追って解説します。

1. サンプルテーブルを作成する

まず、CREATE TABLE文でテーブルを作成します。

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()関数で先頭15文字だけを表示する

ここからが本題です。LEFT()関数を使って、Title列の先頭15文字だけを抽出するクエリは次のとおりです。

mysql> select left(Title,15) as Title from DemoTable;

実行結果は以下のようになります。

+-----------------+
| Title           |
+-----------------+
| Java database c |
| Python with dja |
| C with data str |
+-----------------+
3 rows in set (0.00 sec)

LEFT()関数を使うときのポイント

  • 切り出しは「文字」単位:LEFT(列名, 15)は先頭から15文字を返します。単語数ではなく文字数で処理される点に注意してください。
  • マルチバイト文字の扱い:日本語などのマルチバイト文字も抽出できますが、文字セットによって挙動が異なる場合があります。UTF-8環境での使用を推奨します。
  • 別名(AS)の活用:「as Title」と指定することで、結果セットの列名を見やすく整えています。省略しても動作には影響ありません。
  • 応用例:記事一覧の見出しプレビューなど、長いテキストの冒頭部分だけを一覧表示したい場面で特に便利です。
  1. MySQLでタイムスタンプ(UNIX時間)から日付のみを表示する方法

    タイムスタンプ(UNIX時間)の値から日付を表示するには、MySQLのFROM_UNIXTIME()関数を使用します。この関数は、UNIXタイムスタンプを「YYYY-MM-DD HH:MM:SS」形式の日時に変換してくれます。ここでは、実際にテーブルを作成し、動作を確認していきましょう。 サンプルテーブルの作成 まず、タイムスタンプ値を格納するためのテーブルを作成します。 mysql> create table DemoTable -> ( -> timestampValue bigint -> ); Query OK, 0 rows affe

  2. MySQLで列の値ごとに「NO」の件数のみをカウントして返すクエリの書き方

    MySQLでは、SUM()関数と条件式を組み合わせることで、グループごとに特定の値(この例では「NO」)が出現した回数だけをカウントできます。ここでは、ENUM型のカラムを持つテーブルを例に、「NO」の件数のみを集計する方法を具体的な手順とともに解説します。 1. テーブルを作成する まず、サンプル用のテーブルを作成します。isTopperカラムはENUM型で、「YES」または「NO」のいずれかの値を持ちます。 mysql> create table DemoTable1829      (      Name varchar(