トップへ(mam-mam.net/)

MariaDB(MySQL)で使用できる主な文字列関数

検索:

MariaDB(MySQL)で使用できる主な文字列関数

MariaDB(MySQL)で使用できる主な文字列関数をSQLで解説

CONCAT(str1, str2, ...)
文字列の連結
引数のstr1、str2、...を連結した文字列を返します。
SELECT CONCAT('あいう', 'えお', 2) AS col;
+------------------+
| col              |
+------------------+
| あいうえお2      |
+------------------+
CONCAT_WS(separator, str1, str2, ...)
文字列をセパレータで区切って連結
引数のstr1、str2、...をセパレータで区切って連結した文字列を返します。
SELECT CONCAT_WS(',', 'あいう', 'えお', 2) AS col;
+--------------------+
| col                |
+--------------------+
| あいう,えお,2      |
+--------------------+
LOWER(str) 又は LCASE(str)
小文字に変換
str を小文字に変換します。
SELECT LOWER('あAaAa') AS col;
+-------------+
| col         |
+-------------+
| あaaaa    |
+-------------+
UPPER(str) 又は UCASE(str)
大文字に変換
str を大文字に変換します。
SELECT UPPER('あAaAa') AS col;
+-------------+
| col         |
+-------------+
| あAAAA    |
+-------------+
LTRIM(str)
左側の半角スペースを削除
str の左側の半角スペースのを削除します。
SELECT LTRIM('  abc    ') AS col;
+---------+
| col     |
+---------+
| abc     |
+---------+
RTRIM(str)
右側の半角スペースを削除
str の右側の半角スペースを削除します。
SELECT RTRIM('  abc    ') AS col;
+-------+
| col   |
+-------+
|   abc |
+-------+
TRIM(str)
前後の半角スペースを削除
str の前後の半角スペースを削除します。
SELECT TRIM('  abc    ') AS col;
+------+
| col  |
+------+
| abc  |
+------+
LPAD(str, len, padstr)
文字列の長さを左側で調整
len 文字の長さになるように padstr を左にパディングした文字列を返す。
str が len よりも長い場合は、左からlen 文字に短縮されます。
SELECT LPAD('24', 4, '0') AS col;
+------+
| col  |
+------+
| 0024 |
+------+

SELECT LPAD('24', 7, 'AB') AS col;
+---------+
| col     |
+---------+
| ABABA24 |
+---------+

SELECT LPAD('00000024', 4, 'X') AS col;
+------+
| col  |
+------+
| 0000 |
+------+
RPAD(str, len, padstr)
文字列の長さを右側で調整
len 文字の長さになるように padstr を右にパディングした文字列を返す。
str が len よりも長い場合は、左からlen 文字に短縮されます。
SELECT RPAD('24', 4, '0') AS col;
+------+
| col  |
+------+
| 2400 |
+------+

SELECT RPAD('24', 7, 'AB') AS col;
+---------+
| col     |
+---------+
| 24ABABA |
+---------+

SELECT RPAD('00000024', 4, 'X') AS col;
+------+
| col  |
+------+
| 0000 |
+------+
SUBSTRING(str,pos [,len]) 又は SUBSTR(str,pos [,len]) 又は MID(str,pos [,len])
文字列の部分文字列を取得
str 文字列の pos 番目から 長さ len 分を返す。
SELECT SUBSTRING('あいうえお', 2, 3) AS col;
+-----------+
| col       |
+-----------+
| いうえ    |
+-----------+

SELECT SUBSTRING('あいうえおかき', -2, 3) AS col;
+--------+
| col    |
+--------+
| かき   |
+--------+

SELECT SUBSTRING('あいうえお', 2, 20) AS col;
+--------------+
| col          |
+--------------+
| いうえお     |
+--------------+
LEFT(str,len)
文字列の左から指定文字数を取得
str 文字列の左から 長さ len 分を返す。
SELECT LEFT('あいうえお', 2) AS col;
+--------+
| col    |
+--------+
| あい   |
+--------+
RIGHT(str,len)
文字列の右から指定文字数を取得
str 文字列の右から 長さ len 分を返す。
SELECT RIGHT('あいうえお', 2) AS col;
+--------+
| col    |
+--------+
| えお   |
+--------+
REVERSE(str)
逆順文字列を取得
str 文字列を逆順にした文字列を返す。
SELECT REVERSE('あいうえお') AS col;
+-----------------+
| col             |
+-----------------+
| おえういあ      |
+-----------------+
REPEAT(str, count)
繰り返し文字列を取得
str 文字列を count 回繰り返した文字列を返す。
SELECT REPEAT('あいうえお',3) AS col;
+-----------------------------------------------+
| col                                           |
+-----------------------------------------------+
| あいうえおあいうえおあいうえお                |
+-----------------------------------------------+
REPLACE(str, from_str, to_str)
文字列置換
文字列「from_str」の出現箇所(大文字と小文字を区別)全てを文字列「to_str」に置換した文字列を返す。
SELECT REPLACE('あいうえお あいうえお', 'お', 'を') AS col;
+---------------------------------+
| col                             |
+---------------------------------+
| あいうえを あいうえを           |
+---------------------------------+

SELECT REPLACE('AaAa', 'a', 'B') AS col;
+----------+
| col      |
+----------+
| ABAa   |
+----------+

-- 全レコードのカラムの値を置換する場合は以下のように使える
UPDATE t_url SET url = REPLACE(url, 'http://', 'https://');
CHAR_LENGTH(str)
文字列の文字数
文字列「str」の文字数を返す。
SELECT CHAR_LENGTH('あいうえおABCDE') AS col;
+-----+
| col |
+-----+
|  10 |
+-----+
LENGTH(str)
文字列のバイト数
文字列「str」のバイト数を返す。
SELECT LENGTH('あいうえおABCDE') AS col;
+-----+
| col |
+-----+
|  20 |
+-----+
SUBSTRING_INDEX(str,delim,count)
区切り文字が指定された回数出現する前の部分文字列を返します
文字列「str」に区切り文字「delim」が「count」回目出現する前の文字列を返す。
SELECT SUBSTRING_INDEX('あい,うえ,お', ',', 1) AS col;
+--------+
| col    |
+--------+
| あい   |
+--------+

SELECT SUBSTRING_INDEX('あい,うえ,お', ',', 2) AS col;
+---------------+
| col           |
+---------------+
| あい,うえ     |
+---------------+

SELECT SUBSTRING_INDEX('あい,うえ,お', ',', -1) AS col;
+------+
| col  |
+------+
| お   |
+------+

SELECT SUBSTRING_INDEX('あい,うえ,お', ',', -2) AS col;
+------------+
| col        |
+------------+
| うえ,お    |
+------------+
INSTR(str, substr)
文字列「str」内に文字列「substr」が最初に出現する位置を返す
SELECT INSTR('0001abc', '0001') AS col;
+-----+
| col |
+-----+
|   1 |
+-----+

SELECT INSTR('0001abc', 'AB') AS col;
+-----+
| col |
+-----+
|   5 |
+-----+


SELECT INSTR('0001abc', '0001') AS col;
+-----+
| col |
+-----+
|   0 |
+-----+
LOCATE(substr, str) 又は POSITION(substr IN str)
LOCATE(substr, str, pos)
部分文字列が最初に出現する位置を返す
文字列「str」内に文字列「substr」が最初に出現する位置を返す。
文字列「str」内に「pos」番目文字以降で最初に「substr」が出現する位置を返す。
SELECT LOCATE('AB', 'あいうえおABCDE') AS col;
+-----+
| col |
+-----+
|   6 |
+-----+

SELECT LOCATE('いう', 'あいうABCDEあいう', 5) AS col;
+-----+
| col |
+-----+
|  10 |
+-----+
QUOTE(str)
引数をエスケープ
文字列を引用符(シングルクォーテーション)で囲みます
SELECT QUOTE('あいう\'えお') AS col;
+---------------------+
| col                 |
+---------------------+
| 'あいう\'えお'      |
+---------------------+
ELT(n, str1, str2, ...)
str1, str2, ... の n 番目の要素を返す
SELECT ELT(2, 'あい', 'うえ', 'お') AS col;
+--------+
| col    |
+--------+
| うえ   |
+--------+

SELECT ELT(WEEKDAY('2024-12-15')+1, '月','火','水','木','金','土','日') AS col;
+------+
| col  |
+------+
| 日   |
+------+

FIELD(str, str1, str2, ...)
strが、「str1, str2, ...」 の 何番目かを返す
見つからなかったら0 を 返す
SELECT FIELD('お', 'あい', 'うえ', 'おか', 'お') AS col;
+-----+
| col |
+-----+
|   4 |
+-----+
SPACE(n)
n個の半角スペースの文字列を返す
SELECT SPACE(20) AS col;
+----------------------+
| col                  |
+----------------------+
|                      |
+----------------------+
INSERT(str, pos, len, newstr)
文字列「str」の「pos」番目から長さ「len」の部分を「newstr」に置き換えた文字列を返す
SELECT INSERT('abc0001efg', 4, 4, '000002') AS col;
+--------------+
| col          |
+--------------+
| abc000002efg |
+--------------+
STRCMP(str1, str2)
文字列の比較
str1 と str2 が同じなら「0」、ソート順に従って str1 が str2 より小さい場合は「-1」、それ以外は「1」を返す。
SELECT STRCMP('あいうえお', 'あいうえお') AS col;
+-----+
| col |
+-----+
|   0 |
+-----+

SELECT STRCMP('123あ', '123い') AS col;
+-----+
| col |
+-----+
|  -1 |
+-----+

SELECT STRCMP('123か', '123い') AS col;
+-----+
| col |
+-----+
|   1 |
+-----+
MariaDB(MySQL)のサンプルSQL一覧に戻る