文字列値の関数は、結果の長さが
      max_allowed_packet
      システム環境変数より長くなると、NULL
      を返します。項6.5.2. 「サーバパラメータのチューニング」
      を参照してください。
    
ストリングの位置を演算する関数では、最初の位置は 1 と数値付けられます。
          ストリング str
          の左側の文字の数値を戻します。str
          が空のストリングである場合は、0
          を戻します。str が
          NULL である場合は
          NULL
          を戻します。ASCII()
          は、0 から 255
          の数値を持つ文字に使用できます。
        
mysql>SELECT ASCII('2');-> 50 mysql>SELECT ASCII(2);-> 50 mysql>SELECT ASCII('dx');-> 100
          ORD()
          関数も併せてご参照ください。
        
          N
          のバイナリ値の文字列表現を戻します。N
          は longlong ( BIGINT )
          数字です。これは、CONV(
          に等価になります。N,10,2)N が
          NULL である場合は
          NULL を戻します。
        
mysql> SELECT BIN(12);
        -> '1100'
          ストリング str
          の長さをビットで戻します。
        
mysql> SELECT BIT_LENGTH('text');
        -> 32
          
          CHAR(
        N,... [USING
          charset_name])
          CHAR() 各引数
          N
          を整数として解釈し、それらの整数のコード値によって与えられた文字を構成するストリングを戻します。NULL
          値はとばされます。
        
mysql>SELECT CHAR(77,121,83,81,'76');-> 'MySQL' mysql>SELECT CHAR(77,77.3,'77.3');-> 'MMM'
          255 より大きい CHAR()
          引数は複数結果バイトに変換されます。例えば、CHAR(256)
          は CHAR(1,0)
          に等しく、CHAR(256*256) は
          CHAR(1,0,0)
          に等しいことになります :
        
mysql>SELECT HEX(CHAR(1,0)), HEX(CHAR(256));+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | +----------------+----------------+ | 0100 | 0100 | +----------------+----------------+ mysql>SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));+------------------+--------------------+ | HEX(CHAR(1,0,0)) | HEX(CHAR(256*256)) | +------------------+--------------------+ | 010000 | 010000 | +------------------+--------------------+
          デフォルトにより、CHAR()
          はバイナリ
          ストリングを戻します。与えられた文字セットでストリングを生成するには、オプションの
          USING 句を使用します :
        
mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));
+---------------------+--------------------------------+
| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |
+---------------------+--------------------------------+
| binary              | utf8                           |
+---------------------+--------------------------------+
          USING
          が与えられ、結果ストリングが与えられた文字セットにとって不当になる場合は、警告が発行されます。また、厳密な
          SQL
          モードが有効にされた場合は、CHAR()
          からの結果は NULL になります。
        
          文字で測られたストリング
          str
          の長さを戻します。マルチバイト文字は、1
          文字として数えられます。つまり、2
          バイトの文字を 5
          つ含むストリングには、CHAR_LENGTH()
          は 5
          を戻すところを、LENGTH() は
          10 を戻します。
        
          CHARACTER_LENGTH() is a synonym for
          CHAR_LENGTH().
        
引数を連結した結果であるストリングを戻します。ひとつ以上の引数を持つ場合があります。すべての引数が非バイナリ ストリングである場合、結果は非バイナリ ストリングになります。引数がひとつでもバイナリ ストリングを含む場合は、結果はバイナリ ストリングになります。数値の引数はそれに等しいバイナリ ストリング形態に変換されます。それを避けたい場合は、次の例のように、明示的なタイプ キャストを使用することができます :
SELECT CONCAT(CAST(int_colAS CHAR),char_col);
          引数のどれかが NULL
          である場合、CONCAT() は
          NULL を戻します。
        
mysql>SELECT CONCAT('My', 'S', 'QL');-> 'MySQL' mysql>SELECT CONCAT('My', NULL, 'QL');-> NULL mysql>SELECT CONCAT(14.3);-> '14.3'
          
          CONCAT_WS(
        separator,str1,str2,...)
          CONCAT_WS() は Concatenate With Separator
          ( セパレータと連結 )
          を意味しており、CONCAT()
          の特殊な形態です。最初の引数が、残りの引数のセパレータになります。セパレータは、連結されるストリングの間に追加されます。セパレータは、あとの引数と同じく、ストリングである場合があります。セパレータが
          NULL の場合は、結果は
          NULL になります。
        
mysql>SELECT CONCAT_WS(',','First name','Second name','Last Name');-> 'First name,Second name,Last Name' mysql>SELECT CONCAT_WS(',','First name',NULL,'Last Name');-> 'First name,Last Name'
          CONCAT_WS()
          は空のストリングをとばしません。しかし、セパレータ引数のあとの
          NULL 値はすべてとばします。
        
          異なる基数間の数値を変換します。基数
          rom_base から基数
          to_base に変換された、数値
          N
          の文字列表現を戻します。引数のどれかが
          NULL である場合は
          NULL を戻します。引数
          N
          は整数として解釈されますが、整数またはストリングとして特定される場合があります。最小限の基数は
          2 で、最大の基数は
          36
          です。to_base
          が負数である場合は、N
          は符号付き数として登録されます。それ以外では、N
          は符号なしとして扱われます。CONV()
          は 64 ビット精度で動作します。
        
mysql>SELECT CONV('a',16,2);-> '1010' mysql>SELECT CONV('6E',18,8);-> '172' mysql>SELECT CONV(-17,10,-18);-> '-H' mysql>SELECT CONV(10+'10'+'10'+0xa,10,10);-> '40'
          N = 1
          の場合は str1
          を戻し、N =
          2 の場合は
          str2
          を戻す、というふうに続きます。N
          が 1
          以下か、引数の数より大きければ、NULL
          を戻します。ELT() は
          FIELD() の補数です。
        
mysql>SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');-> 'ej' mysql>SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');-> 'foo'
          
          EXPORT_SET(
        bits,on,off[,separator[,number_of_bits]])
          値 bits
          の各ビットセットには on
          ストリングが返され、各再生ビットには
          off
          が返されます。bits
          のビットは右から左に検査されます (
          下位ビットから上位ビット )
          。ストリングは、separator
          ストリング ( デフォルトはコンマ
          ‘,’ )
          で区切られた結果の左から右意へ追加されます。検査されたビットの数は
          number_of_bits
          によって与えられます ( デフォルトでは 64 )
          。
        
mysql>SELECT EXPORT_SET(5,'Y','N',',',4);-> 'Y,N,Y,N' mysql>SELECT EXPORT_SET(6,'1','0',',',10);-> '0,1,1,0,0,0,0,0,0,0'
          str1
          、str2
          、str3
          、... リストの
          str の開始位置 (
          ポジション )
          を戻します。str
          が見つからない場合は、0
          を戻します。
        
          FIELD()
          へのすべての引数がストリングの場合、すべての引数はストリングとして比較されます。すべての引数が数値の場合、それらは数値として比較されます。それ以外は、引数は
          double として比較されます。
        
          str が NULL
          である場合、NULL
          はいかなる値との比較でも等価にならないため、戻り値は
          0
          になります。FIELD() は
          ELT() の補数です。
        
mysql>SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 2 mysql>SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');-> 0
          ストリング str が
          N
          サブストリングで構成されるストリング
          リスト strlist
          内にある場合は、1 から N
          の範囲の値を戻します。ストリング
          リストは、‘,’
          文字で区切られたサブストリングで構成されたストリングです。最初の引数が定数列で、2
          番目がタイプ SET
          のカラムの場合、FIND_IN_SET()
          関数はビット演算を使用するために最適化されます。str
          が strlist
          内にない場合、または
          strlist
          が空のストリングの場合は、0
          を戻します。引数のどちらかが
          NULL である場合は
          NULL
          を戻します。この関数は、最初の引数がコンマ
          ( ‘,’ )
          文字を含む場合は正常に作動しません。
        
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2
          数字 X を
          '#,###,###.##'
          のようにフォーマットし、D
          少数位まで丸め、その結果をストリングとして戻します。D
          が 0
          の場合、結果は小数点または小数部を持ちません。
        
mysql>SELECT FORMAT(12332.123456, 4);-> '12,332.1235' mysql>SELECT FORMAT(12332.1,4);-> '12,332.1000' mysql>SELECT FORMAT(12332.2,0);-> '12,332'
          N_or_S
          が数字の場合、N の 16
          進値の文字列表現を戻します。N
          は longlong ( BIGINT )
          数です。これは、CONV(
          に等価になります。
        N,10,16)
          N_or_S
          がストリングの場合は、N_or_S
          の各文字が二桁の 16
          進数に変換される、N_or_S
          の 16 進数字列表現を戻します。
        
mysql>SELECT HEX(255);-> 'FF' mysql>SELECT 0x616263;-> 'abc' mysql>SELECT HEX('abc');-> 616263
          ストリング str を、位置
          pos
          で始まるサブストリングと、ストリング
          newstr に置換された
          len
          文字長と共に戻します。pos
          がストリングの長さに収まらない場合は、元のストリングを返します。len
          が残りのストリングの長さに収まらない場合は、位置
          pos
          からの残りのストリングを置換します。引数のどれかが
          NULL である場合は
          NULL を戻します。
        
mysql>SELECT INSERT('Quadratic', 3, 4, 'What');-> 'QuWhattic' mysql>SELECT INSERT('Quadratic', -1, 4, 'What');-> 'Quadratic' mysql>SELECT INSERT('Quadratic', 3, 100, 'What');-> 'QuWhat'
この関数はマルチバイトでも安全です。
          ストリング str
          内のサブストリング substr
          の最初の発生の位置を戻します。これは、LOCATE()
          の引数がふたつのフォームの、引数の順番が逆になったものとと同じですが、
        
mysql>SELECT INSTR('foobarbar', 'bar');-> 4 mysql>SELECT INSTR('xbar', 'foobar');-> 0
この関数はマルチバイトでも安全で、少なくともひとつの引数がバイナリ ストリングである場合は、大文字小文字の区別が必須です。
          LCASE() is a synonym for
          LOWER().
        
          ストリング str
          からの左側の len
          文字を戻し、引数が NULL
          である場合は NULL を戻します。
        
mysql> SELECT LEFT('foobarbar', 5);
        -> 'fooba'
          バイトで測られたストリング
          str
          の長さを戻します。マルチバイト文字は、複数バイトとして数えられます。つまり、2
          バイトの文字を 5
          つ含むストリングには、CHAR_LENGTH()
          は 5
          を戻すところを、LENGTH() は
          10 を戻します。
        
mysql> SELECT LENGTH('text');
        -> 4
          ファイルを読み取り、その内容をストリングとして戻します。この関数を使用するには、ファイルがサーバホストに置かれていなければならないのと、ファイルへのフルパス名を特定し、FILE
          権限を持つ必要があります。ファイルはあらゆる点で読取可能でなければならず、max_allowed_packet
          バイトより小さなサイズである必要があります。
        
          ファイルが存在しない場合、または、上記の条件が満たされておらず、読取が不可能な場合、この関数は
          NULL を戻します。
        
          MySQL 5.1.6
          からは、character_set_filesystem
          システム環境変数が、リテラル
          ストリングとして与えられたファイル名の解釈をコントロールします。
        
mysql>UPDATE tSET blob_col=LOAD_FILE('/tmp/picture')WHERE id=1;
          
          LOCATE(,
          substr,str)LOCATE(
        substr,str,pos)
          最初の構文は、ストリング
          str 内のサブストリング
          substr
          の最初の発生の位置を戻します。2
          番目の構文は、位置 pos
          で始まるストリング str
          内のサブストリング substr
          の最初の発生の位置を戻します。str
          内に substr がない場合は
          0 を戻します。
        
mysql>SELECT LOCATE('bar', 'foobarbar');-> 4 mysql>SELECT LOCATE('xbar', 'foobar');-> 0 mysql>SELECT LOCATE('bar', 'foobarbar', 5);-> 7
この関数はマルチバイトでも安全で、少なくともひとつの引数がバイナリ ストリングである場合は、大文字小文字の区別が必須です。
          現在の文字セットのマッピングに基づいてすべての文字が小文字に変更されたストリング
          str
          を戻します。デフォルトは latin1
          ( cp1252 West European ) です。
        
mysql> SELECT LOWER('QUADRATICALLY');
        -> 'quadratically'
この関数はマルチバイトでも安全です。
          len
          文字の長さへ、ストリング
          padstr
          で左にパッドされたストリング
          str
          を戻します。str が
          len
          より長い場合は、戻り値は
          len 文字に縮められます。
        
mysql>SELECT LPAD('hi',4,'??');-> '??hi' mysql>SELECT LPAD('hi',1,'??');-> 'h'
          頭のスペース文字を除いたストリング
          str を戻します。
        
mysql> SELECT LTRIM('  barbar');
        -> 'barbar'
この関数はマルチバイトでも安全です。
          bits
          セット内の対応するビットを持つストリングで構成されるセット値
          ( ‘,’
          文字によって区切られたサブストリングを含む
          ) を戻します。str1
          はビット 0 に対応し、str2
          はビット 1
          に対応する、というようになります。str1
          、str2 、...
          内の NULL
          値は結果に追加されません。
        
mysql>SELECT MAKE_SET(1,'a','b','c');-> 'a' mysql>SELECT MAKE_SET(1 | 4,'hello','nice','world');-> 'hello,world' mysql>SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world');-> 'hello' mysql>SELECT MAKE_SET(0,'a','b','c');-> ''
          MID(
          は、str,pos,len)SUBSTRING(
          のシノニムです。
        str,pos,len)
          N の 8
          進数の文字列表現を戻します。N
          は longlong ( BIGINT )
          数字です。これは、CONV(
          に等価になります。N,100.8)N が
          NULL である場合は
          NULL を戻します。
        
mysql> SELECT OCT(12);
        -> '14'
          OCTET_LENGTH() は
          LENGTH() のシノニムです。
        
          ストリング str
          の左端の文字がマルチバイト文字の場合は、次の公式を使ってその構成バイトの数値から計算された、その文字のコードを戻します
          :
        
(1st byte code) + (2nd byte code × 256) + (3rd byte code × 2562) ...
          左端の文字がマルチバイト文字でない場合は、ORD()
          は ASCII()
          関数と同じ値を戻します。
        
mysql> SELECT ORD('2');
        -> 50
          POSITION( は
          substr IN
          str)LOCATE(
          のシノニムです。
        substr,str)
          SQL
          文で、適切にエスケープされたデータ値として使用できる結果を生成するストリングを引用します。ストリングは単一引用符で囲まれ、単一引用符
          ( ‘'’ )
          、バックスラッシュ (
          ‘\’ ) 、ASCII
          NUL 、そして
          バックスラッシュによって先行された Control-Z
          の各インスタンスと共に戻されます。引数が
          NULL
          の場合は、戻り値は単一引用符の囲みなしの語句
          「NULL」 になります。
        
mysql>SELECT QUOTE('Don\'t!');-> 'Don\'t!' mysql>SELECT QUOTE(NULL);-> NULL
          count
          回繰り返されたストリング
          str
          で構成されるストリングを戻します。count
          が 1
          より小さい場合は、空のストリングを戻します。str
          もしくは count が
          NULL である場合は
          NULL を戻します。
        
mysql> SELECT REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'
          ストリング to_str
          によって置換されたストリング
          from_str
          のすべての発生と共に、ストリング
          str
          を戻します。REPLACE()
          は、from_str
          を検索する際、大文字小文字を区別した検出を行います。
        
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'
この関数はマルチバイトでも安全です。
          文字の順序が逆になったストリング
          str を戻します。
        
mysql> SELECT REVERSE('abc');
        -> 'cba'
この関数はマルチバイトでも安全です。
          ストリング str
          からの右側の len
          文字を戻し、引数が NULL
          である場合は NULL を戻します。
        
mysql> SELECT RIGHT('foobarbar', 4);
        -> 'rbar'
この関数はマルチバイトでも安全です。
          len
          文字の長さへ、ストリング
          padstr
          で右にパッドされたストリング
          str
          を戻します。str が
          len
          より長い場合は、戻り値は
          len 文字に縮められます。
        
mysql>SELECT RPAD('hi',5,'?');-> 'hi???' mysql>SELECT RPAD('hi',1,'?');-> 'h'
この関数はマルチバイトでも安全です。
          最後のスペース文字を除いたストリング
          str を戻します。
        
mysql> SELECT RTRIM('barbar   ');
        -> 'barbar'
この関数はマルチバイトでも安全です。
          str から soundex
          ストリングを戻します。サウンドがほぼ同じなふたつのストリングは、同等の
          soundex ストリングを持っています。標準の
          soundex ストリングは長さ 4
          文字ですが、SOUNDEX()
          関数は任意の長さのストリングを戻します。標準の
          soundex ストリングを得るには、結果に
          SUBSTRING()
          を使用することができます。str
          内のすべての非アルファベット文字は無視されます。A
          から Z
          以外のすべての国際アルファベット文字は、母音として扱われます。
        
          重要点 :
          SOUNDEX()
          を使用する場合は、次の制限に留意してください
          :
        
現在実装されているこの関数は、英語言語のみとの作動が意図されています。多言語でのストリングは、正確な結果を生成できない場合があります。
              この関数は、utf-8
              を含むマルチバイト文字セットを使用するストリングでは、一貫性のある結果を提供する保証はありません。
            
今後のリリースでは、これらの制限をなくせるよう努力しています。詳細は Bug#22638 をご覧ください。
mysql>SELECT SOUNDEX('Hello');-> 'H400' mysql>SELECT SOUNDEX('Quadratically');-> 'Q36324'
注記 :この関数は、もっと一般的な拡張版ではなく、元来の Soundex アルゴリズムを実装しています。その相違点としては、元来のバージョンは最初に母音を破棄してから、複製を捨てますが、拡張版ではまず複製を破棄し、それから母音を捨てます。
          これは、SOUNDEX(
          と同様です。
        expr1)
          = SOUNDEX(expr2)
          N
          スペース文字で構成されるストリングを戻します。
        
mysql> SELECT SPACE(6);
        -> '      '
          
          
          SUBSTRING(,
          str,pos)SUBSTRING(,
          str FROM
          pos)SUBSTRING(,
          str,pos,len)SUBSTRING(
        str FROM
          pos FOR
          len)
          len
          引数なしのフォームは、位置
          pos
          ではじまる、ストリング
          str
          からのサブストリングを返します。len
          引数を持つフォームは、位置
          pos
          ではじまる、ストリング
          str からのサブストリング
          len
          文字長を返します。FROM
          を使用するフォームは標準の SQL
          構文です。また、pos
          にマイナス値を使用することも可能です。その場合、サブクエリの頭は、ストリングの最初でなく、ストリングの最後からの
          pos
          文字です。マイナス値は、この関数のあらゆるフォームで、pos
          に使用することもできます。
        
mysql>SELECT SUBSTRING('Quadratically',5);-> 'ratically' mysql>SELECT SUBSTRING('foobarbar' FROM 4);-> 'barbar' mysql>SELECT SUBSTRING('Quadratically',5,6);-> 'ratica' mysql>SELECT SUBSTRING('Sakila', -3);-> 'ila' mysql>SELECT SUBSTRING('Sakila', -5, 3);-> 'aki' mysql>SELECT SUBSTRING('Sakila' FROM -4 FOR 2);-> 'ki'
この関数はマルチバイトでも安全です。
          len が 1
          以下の場合、結果は空のストリングになります。
        
          SUBSTR() は SUBSTRING()
          のシノニムです。
        
          
          SUBSTRING_INDEX(
        str,delim,count)
          デリミッタ delim の
          count
          発生前に、ストリング str
          を戻します。count
          がプラスの場合、最後のデリミッタ (
          左から数えて )
          の左側のすべてを戻します。count
          がマイナスの場合、最後のデリミッタ (
          右から数えて )
          の右側のすべてを戻します。SUBSTRING_INDEX()
          は、delim
          を検索する際、大文字小文字を区別した検出を行います。
        
mysql>SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);-> 'www.mysql' mysql>SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);-> 'mysql.com'
この関数はマルチバイトでも安全です。
          
          TRIM([{BOTH | LEADING | TRAILING}
          [,
          remstr] FROM]
          str)TRIM([
        remstr FROM]
          str)
          すべての remstr
          プレフィックスまたはサフィックスを除いたストリング
          str を戻します。拡張子
          BOTH 、LEADING
          、または TRAILING
          のうちいずれも与えられていない場合は、BOTH
          が仮定されます。remstr
          はオプションで、指定されていない限り、スペースは除かれます。
        
mysql>SELECT TRIM(' bar ');-> 'bar' mysql>SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');-> 'barxxx' mysql>SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');-> 'bar' mysql>SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');-> 'barx'
この関数はマルチバイトでも安全です。
          UCASE() は UPPER()
          のシノニムです。
        
          HEX(
          の逆演算を行います。引数内の 16
          進数のそれぞれのペアを数字として解釈し、それを数字で表される文字に変換します。結果としての文字はバイナリ
          ストリングとして戻されます。
        str)
mysql>SELECT UNHEX('4D7953514C');-> 'MySQL' mysql>SELECT 0x4D7953514C;-> 'MySQL' mysql>SELECT UNHEX(HEX('string'));-> 'string' mysql>SELECT HEX(UNHEX('1267'));-> '1267'
          引数ストリング内の文字は、正当な 16
          進数である必要があります :
          '0' ..
          '9',
          'A' ..
          'F',
          'a' ..
          'f'. UNHEX()
          が引数内で非 16 進数に遭遇する場合は
          NULL を戻します :
        
mysql> SELECT UNHEX('GG');
+-------------+
| UNHEX('GG') |
+-------------+
| NULL        | 
+-------------+
          NULL
          という結果は、UNHEX()
          への引数が BINARY
          カラムである場合、値が保存される時に 0x00
          バイトでパッドされるために起こりますが、これらのバイトは検索でストリップされません。例えば、'aa'
          は 'aa ' として
          CHAR(3)
          カラムに保存され、'aa' (
          トレーリング パッド
          スペースがストリップされた状態 )
          として検索されます。それにより、カラム値の
          UNHEX() は A'
          を戻します。それに対し、'aa'
          は BINARY(3) カラムに
          'aa\0'
          として保存され、'aa\0' (
          トレーリング パッド 0x00
          バイトがストリップされていない常態で )
          として検索されます。'\0'
          は正当な 16 進数ではないので、カラム値の
          UNHEX() は NULL
          を戻します。
        
          現在の文字セットのマッピングに基づいてすべての文字が大文字に変更されたストリング
          str
          を戻します。デフォルトは latin1
          ( cp1252 West European ) です。
        
mysql> SELECT UPPER('Hej');
        -> 'HEJ'
この関数はマルチバイトでも安全です。

