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 | +-----+