MySQLの文字列関数(マニュアルを読む No.7)

この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの7日目です.


 MySQLの文字列関数を見てみようと思う。マニュアルの記述内容を比較したところ、MySQL 5.6と5.7 で文字列関数の増減はない模様。

http://dev.mysql.com/doc/refman/5.7/en/string-functions.html
http://dev.mysql.com/doc/refman/5.6/ja/string-functions.html


 例によって、オレオレグルーピングをしてみました。括弧内は、その前に記述してある関数のシノニムです。


文字列の長さ

BIT_LENGTH()
CHAR_LENGTH(), (CHARACTER_LENGTH())
LENGTH(), (OCTET_LENGTH())

数値表現・数値からの文字列表現など

ASCII(), ORD(), BIN()
OCT(),CHAR()
HEX(),UNHEX()
TO_BASE64(), FROM_BASE64()

文字列結合・編集・生成・部分取り出し

CONCAT(), CONCAT_WS()
REPEAT()
REVERSE()
REPLACE(), INSERT()
LEFT(),MID(),RIGHT()
SUBSTR(), SUBSTRING()
SUBSTRING_INDEX()
QUOTE()

部分文字列位置確認・文字列比較

LOCATE(), (POSITION())
INSTR()
STRCMP()

文字列リストからの取得

ELT(), FIELD()

空白除去・空白追加

TRIM(),LTRIM(),RTRIM()
LPAD(),RPAD()
SPACE()

大文字小文字変換

UPPER(), (UCASE())
LOWER(), (LCASE())

演算子

LIKE, NOT LIKE, MATCH
REGEXP, (RLIKE), NOT REGEXP
SOUNDS LIKE


その他(よくわからなかったものを含む)

EXPORT_SET() 数値のビット表現を指定した文字列に
MAKE_SET() 文字列リストから指定した位置(複数)の文字を結合して返す
FIND_IN_SET() コンマ区切り文字列からの存在位置取得
FORMAT() 数値形式の文字列化(コンマを入れたり)
WEIGHT_STRING() コレーションを考慮した照合順序用文字列(コード)を返す、のかな?
LOAD_FILE() ファイルから読み取る
SOUNDEX() 使ったことない。使う気がしない。SOUNDEX。


 SOUNDEX() のように、意味は分かるけれども使うことはないだろうな、という関数のほかに、結構、知らない関数がありました。
 整理しただけで今日は尽きたので、明日、この中からいくつかの、知らなかった関数を試してみようと思います。みなさんも上記のなかで、見ただけで使い方が思い浮かばない関数はありましたか?