15.【MySQL】文字列に使える関数

MySQLには文字列に対して使える関数がいくつか用意されています。この記事ではその中でも特に基本的なものを例に、関数を使った文字列の処理について学びましょう。

目次

文字列の一部を切り出す SUBSTRING()

文字列の一部を切り出すには SUBSTRING() を使います。

SUBSTRING(何文字目から切り出すか, 何文字分切り出すか)

実際にSELECT文で、特定のカラムの文字列を切り出して取得してみましょう。

-- titlesという名前のテーブルがあれば削除
DROP TABLE IF EXISTS titles;

 -- titlesという名前のテーブルを作成
CREATE TABLE titles (
  id INT NOT NULL AUTO_INCREMENT,
  author_id INT,
  post_title VARCHAR(50) UNIQUE,
  view INT,
  PRIMARY KEY (id)
);

-- レコードを挿入
INSERT INTO titles (author_id, post_title, view) VALUES
  (1, 'MySQLとは', 10),
  (2, 'SQLとはなにか', 50),
  (1, 'DockerでMySQLを使う方法', 100);

-- 3文字目以降を切り出す
SELECT post_title, SUBSTRING(post_title, 3) FROM titles;

-- 3文字目から3文字切り出す
SELECT post_title, SUBSTRING(post_title, 3, 3) FROM titles;

-- 末尾から3文字切り出す
SELECT post_title, SUBSTRING(post_title, -3) FROM titles;

実行結果は次のとおりです。

post_title      SUBSTRING(post_title, 3)
DockerでMySQLを使う方法 ckerでMySQLを使う方法
MySQLとは       SQLとは
SQLとはなにか   Lとはなにか
post_title      SUBSTRING(post_title, 3, 3)
DockerでMySQLを使う方法 cke
MySQLとは       SQL
SQLとはなにか   Lとは
post_title      SUBSTRING(post_title, -3)
DockerでMySQLを使う方法 う方法
MySQLとは       Lとは
SQLとはなにか   なにか

文字列の連結 CONCAT()

文字列を連結するには CONCAT() を使います。

CONCAT(文字列1, 文字列2, 文字列3)

実際にSELECT文で、複数のカラムの文字列を連結して取得してみましょう。

-- post_titleと":"とviewを連結して取得
SELECT CONCAT(post_title, ":", view) FROM titles;

実行結果は次のとおりです。

CONCAT(post_title, ":", view)
MySQLとは:10
SQLとはなにか:50
DockerでMySQLを使う方法:100

文字数 CHAR_LENGTH()

文字数を取得するには CHAR_LENGTH() を使います。

CHAR_LENGTH(文字列)

実際にSELECT文で、特定のカラムの文字数を取得してみましょう。

-- post_titleの文字数を取得
SELECT post_title, CHAR_LENGTH(post_title) FROM titles;

実行結果は次のとおりです。

DockerでMySQLを使う方法 17
MySQLとは       7
SQLとはなにか   8

大文字に変換 UPPER()

文字列を大文字に変換して取得するには UPPER() を使います。

UPPER(文字列)

実際にSELECT文で、特定のカラムの文字列を大文字に変換して取得してみましょう。

-- post_titleの文字列を大文字に変換して取得
SELECT post_title, UPPER(post_title) FROM titles;

実行結果は次のとおりです。

post_title      UPPER(post_title)
DockerでMySQLを使う方法 DOCKERでMYSQLを使う方法
MySQLとは       MYSQLとは
SQLとはなにか   SQLとはなにか

このとおり日本語には影響せず、アルファベットの小文字のみが大文字に変換されます。

文字列に使える関数の一覧

このほかにもMySQLには文字列に使える関数がいくつか用意されています。

詳しくは公式リファレンスマニュアルに記載されていますので確認してみて下さい。

※MySQL5.6と8.0で使える関数が異なる点に注意しましょう。

このエントリーをはてなブックマークに追加

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。