MySQLで利用できる文字列関数について確認します。「文字数の取得」「文字列の結合」「文字列の取得」など利用例を交えて解説します。
目次
長さ
CHAR_LENGTH|文字数
引数の文字数を返します。
mysql> SELECT CHAR_LENGTH('abcde'), CHAR_LENGTH('あいうえお');
+----------------------+--------------------------------+
| CHAR_LENGTH('abcde') | CHAR_LENGTH('あいうえお') |
+----------------------+--------------------------------+
| 5 | 5 |
+----------------------+--------------------------------+
LENGTH|文字列の長さ(バイト単位)
文字列の長さをバイト単位で返します。
mysql> SELECT LENGTH('abcde'), LENGTH('あいうえお');
+-----------------+---------------------------+
| LENGTH('abcde') | LENGTH('あいうえお') |
+-----------------+---------------------------+
| 5 | 15 |
+-----------------+---------------------------+
変更
INSERT|指定位置に挿入
文字列を、指定位置に指定文字数だけ挿入します。
mysql> SELECT INSERT('明日、スカイツリーに行く', 4, 6, '京都');
+----------------------------------------------------------------+
| INSERT('明日、スカイツリーに行く', 4, 6, '京都') |
+----------------------------------------------------------------+
| 明日、京都に行く |
+----------------------------------------------------------------+
CONCAT|文字列結合
mysql> SELECT CONCAT('山田', '太郎');
+----------------------------+
| CONCAT('山田', '太郎') |
+----------------------------+
| 山田太郎 |
+----------------------------+
FORMAT|数値の書式設定
数値を、指定小数点以下桁数に書式設定します。
mysql> SELECT FORMAT(11111.1111, 2);
+-----------------------+
| FORMAT(11111.1111, 2) |
+-----------------------+
| 11,111.11 |
+-----------------------+
LOWER|小文字化
mysql> SELECT LOWER('ABCdef');
+-----------------+
| LOWER('ABCdef') |
+-----------------+
| abcdef |
+-----------------+
UPPER|大文字化
mysql> SELECT UPPER('ABCdef');
+-----------------+
| UPPER('ABCdef') |
+-----------------+
| ABCDEF |
+-----------------+
REPLACE|置換
mysql> SELECT REPLACE('aaAAbbBBaaAAbbBB', 'aa', 'ss');
+-----------------------------------------+
| REPLACE('aaAAbbBBaaAAbbBB', 'aa', 'ss') |
+-----------------------------------------+
| ssAAbbBBssAAbbBB |
+-----------------------------------------+
位置
INSTR|出現位置
文字列が最初に出現する位置を返します。
mysql> SELECT INSTR('明日、北海道に行く', '北海道');
+---------------------------------------------------+
| INSTR('明日、北海道に行く', '北海道') |
+---------------------------------------------------+
| 4 |
+---------------------------------------------------+
取得
LEFT|左端から
mysql> SELECT LEFT('明日、北海道に行く', 3);
+----------------------------------------+
| LEFT('明日、北海道に行く', 3) |
+----------------------------------------+
| 明日、 |
+----------------------------------------+
RIGHT|右端から
mysql> SELECT RIGHT('明日、北海道に行く', 3);
+-----------------------------------------+
| RIGHT('明日、北海道に行く', 3) |
+-----------------------------------------+
| に行く |
+-----------------------------------------+
SUBSTR|指定位置から
mysql> SELECT SUBSTR('明日、北海道に行く', 4, 3);
+---------------------------------------------+
| SUBSTR('明日、北海道に行く', 4, 3) |
+---------------------------------------------+
| 北海道 |
+---------------------------------------------+
SUBSTRING_INDEX|区切り文字で
区切り文字
が 指定回数
だけ 出現する前の文字列
を返します
mysql> SELECT SUBSTRING_INDEX('http:://localhost/aaa/bbb/ccc', '/', 1);
+----------------------------------------------------------+
| SUBSTRING_INDEX('http:://localhost/aaa/bbb/ccc', '/', 1) |
+----------------------------------------------------------+
| http:: |
+----------------------------------------------------------+
mysql> SELECT SUBSTRING_INDEX('http:://localhost/aaa/bbb/ccc', '/', 3);
+----------------------------------------------------------+
| SUBSTRING_INDEX('http:://localhost/aaa/bbb/ccc', '/', 3) |
+----------------------------------------------------------+
| http:://localhost |
+----------------------------------------------------------+
mysql> SELECT SUBSTRING_INDEX('http:://localhost/aaa/bbb/ccc', '/', 5);
+----------------------------------------------------------+
| SUBSTRING_INDEX('http:://localhost/aaa/bbb/ccc', '/', 5) |
+----------------------------------------------------------+
| http:://localhost/aaa/bbb |
+----------------------------------------------------------+
削除
LTRIM|先頭空白を削除
mysql> SELECT LTRIM(' おはよう! ');
+--------------------------------+
| LTRIM(' おはよう! ') |
+--------------------------------+
| おはよう! |
+--------------------------------+
RTRIM|末尾空白を削除
mysql> SELECT RTRIM(' おはよう! ');
+--------------------------------+
| RTRIM(' おはよう! ') |
+--------------------------------+
| おはよう! |
+--------------------------------+
TRIM|先頭と末尾にある空白を削除
mysql> SELECT TRIM(' おはよう! ');
+-------------------------------+
| TRIM(' おはよう! ') |
+-------------------------------+
| おはよう! |
+-------------------------------+