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