Search
  1. 文字列のバイト数
  2. 文字列の文字数
  3. 文字列検索(文字列s中に部分文字列subが現われる位置)
  4. 文字列検索(文字列s中に部分文字列subが現われる位置)〔※マルチバイト対応〕
  5. 文字列検索(文字列s中の位置p以降に部分文字列subが現われる位置)〔※マルチバイト対応〕
  6. 部分文字列の取出(文字列sの左i文字)
  7. 部分文字列の取出(文字列sの右i文字)
  8. 部分文字列の取出(文字列の位置p以降の文字)〔※マルチバイト対応〕
  9. 部分文字列の取出(文字列の位置p以降のlen文字)〔※マルチバイト対応〕
  10. 部分文字列の取出(文字列をdelimで区切った左からcount個分の文字列)
  11. 文字列の左の空白文字を除去
  12. 文字列の右の空白文字を削除
  13. 文字列から特定の文字列を削除
  14. 長さlenになるまで文字列の左を文字列padstrで埋める
  15. 長さlenになるまで文字列の右を文字列padstrで埋める
  16. n個の空白文字
  17. 文字列の反復
  18. 文字列sのsoundex文字列
  19. n=1ならs1、n=2ならs2、・・・を返す
  20. s=s1なら1、s=s2なら2、・・・を返す
  21. 文字列中の位置
  22. ビットbに対応する文字リスト
  23. 数値のビット1を文字列on、ビット0を文字列offにし、区切り文字で区切った文字列を返す
  24. 文字列を小文字に変換〔※マルチバイト対応〕
  25. 文字列を大文字に変換〔※マルチバイト対応〕
  26. 文字列の置換
  27. 文字列の反転
  28. 文字列の位置posからlenバイト分をnewstrに置換〔※マルチバイト対応〕
  29. 文字列をエスケープ〔※MySQL 4.0.3~〕
  30. 文字列左端のASCIIコードを取得
  31. Nのバイナリ文字列式を取得
  32. 文字列ノ長さをビットで取得
  33. ASCIIコード→文字列に変換
  34. 数値→進数の異なる数値に変換

文字列のバイト数

unknown

LENGTH(str) または OCTET_LENGTH(str)

文字列str長さ(バイト数)を返します。 日本語1文字は2バイトとなります。 例えば、5個のバイト文字で構成される文字列は、この関数を使用すると「10」が返りますが、CHAR_LENGTH()関数を使用すると「5」が返ります。

mysql> SELECT LENGTH('あいうえお'); Enter
+----------------------+
| LENGTH('あいうえお') |
+----------------------+
|                   10 |
+----------------------+
1 row in set (0.00 sec)

mysql> SELECT LENGTH('aiueo'); Enter
+-----------------+
| LENGTH('aiueo') |
+-----------------+
|               5 |
+-----------------+
1 row in set (0.00 sec)

# FirstNameフィールドとAgeフィールドのバイト数を取得
mysql> SELECT FirstName, LENGTH(FirstName), Age, LENGTH(Age) Enter
     > FROM tbl_Customer; Enter
+-----------+-------------------+------+-------------+
| FirstName | LENGTH(FirstName) | Age  | LENGTH(Age) |
+-----------+-------------------+------+-------------+
| 花子      |                 4 |   21 |           2 |
| 太郎      |                 4 |   30 |           2 |
| 一郎      |                 4 |   45 |           2 |
| 萌子      |                 4 |   18 |           2 |
| 愛        |                 2 |   21 |           2 |
| 太郎      |                 4 |   22 |           2 |
| 花子      |                 4 |   35 |           2 |
+-----------+-------------------+------+-------------+
7 rows in set (0.00 sec)

文字列の文字数

unknown

CHAR_LENGTH(str) または CHARACTER_LENGTH(str)

文字列str長さ(文字数)を返します。 日本語は1文字とみなされます。 例えば日本語5文字の場合、LENGTH()関数を使用すると「10」が返りますが、この関数では「5」が返ります。

CHARACTER_LENGTH()関数は、CHAR_LENGTH()関数のシノニムです。

mysql> SELECT CHAR_LENGTH('あいうえお'); Enter
+---------------------------+
| CHAR_LENGTH('あいうえお') |
+---------------------------+
|                         5 |
+---------------------------+
1 row in set (0.01 sec)

mysql> SELECT CHAR_LENGTH('aiueo'); Enter
+----------------------+
| CHAR_LENGTH('aiueo') |
+----------------------+
|                    5 |
+----------------------+
1 row in set (0.00 sec)

# FirstNameフィールドとAgeフィールドの文字数を取得
mysql> SELECT FirstName, CHAR_LENGTH(FirstName), Age, CHAR_LENGTH(Age) Enter
    -> FROM tbl_Customer; Enter
+-----------+------------------------+------+------------------+
| FirstName | CHAR_LENGTH(FirstName) | Age  | CHAR_LENGTH(Age) |
+-----------+------------------------+------+------------------+
| 花子      |                      2 |   21 |                2 |
| 太郎      |                      2 |   30 |                2 |
| 一郎      |                      2 |   45 |                2 |
| 萌子      |                      2 |   18 |                2 |
| 愛        |                      1 |   21 |                2 |
| 太郎      |                      2 |   22 |                2 |
| 花子      |                      2 |   35 |                2 |
+-----------+------------------------+------+------------------+
7 rows in set (0.00 sec)

文字列検索(文字列s中に部分文字列subが現われる位置)

unknown

INSTR(str, substr)

文字列str中に最初に現われる部分文字列substrの位置を返します。
部分文字列が見つからなかった場合は0を返します。

この関数は、LOCATE()関数の2つの引数を使用する形式と同じ動作をしますが、引数の順序が逆です。

mysql> SELECT INSTR('あいうえお', 'い'); Enter
+---------------------------+
| INSTR('あいうえお', 'い') |
+---------------------------+
|                         2 |
+---------------------------+
1 row in set (0.00 sec)

mysql> SELECT INSTR('abcde', 'b'); Enter
+---------------------+
| INSTR('abcde', 'b') |
+---------------------+
|                   2 |
+---------------------+
1 row in set (0.00 sec)

文字列検索(文字列s中に部分文字列subが現われる位置)
※マルチバイト対応

unknown

LOCATE(substr, str) または POSITION(substr IN str)

文字列str中に、部分文字列substrが最初に見つかった位置を返します(先頭は1始まり)。 見つからなかった場合は0を返します。

POSITION(substr IN str)関数は、LOCATE(substr,str)関数のシノニムです。

# 「あいうえお」中に「い」が現われる最初の位置を取得
mysql> SELECT LOCATE('い','あいうえお'); Enter
+---------------------------+
| LOCATE('い','あいうえお') |
+---------------------------+
|                         2 |
+---------------------------+
1 row in set (0.01 sec)

# 「abcde」中に「b」が現われる最初の位置を取得
mysql> SELECT LOCATE('b', 'abcde'); Enter
+---------------------+
| LOCATE('b','abcde') |
+---------------------+
|                   2 |
+---------------------+
1 row in set (0.00 sec)

文字列検索(文字列s中の位置p以降に部分文字列subが現われる位置)
※マルチバイト対応

unknown

LOCATE(substr, str, pos)

文字列strの位置pos以降に、部分文字列substrが最初に見つかった位置を返します(先頭は1始まり)。 見つからなかった場合は0を返します。

# 「あいうえおあいうえお」の3文字目以降に、「い」が現われる最初の位置
mysql> SELECT LOCATE('い','あいうえおあいうえお',3); Enter
+---------------------------------------+
| LOCATE('い','あいうえおあいうえお',3) |
+---------------------------------------+
|                                     7 |
+---------------------------------------+
1 row in set (0.00 sec)

# 「abcdeabcde」の3文字目以降に、「b」が現われる最初の位置
mysql> SELECT LOCATE('b','abcdeabcde',3); Enter
+----------------------------+
| LOCATE('b','abcdeabcde',3) |
+----------------------------+
|                          7 |
+----------------------------+
1 row in set (0.00 sec)

部分文字列の取出(文字列sの左i文字)

unknown

LEFT(str,len)

文字列strの左端からlen文字分の文字列を返します。
この関数はマルチバイト対応のため、日本語も1文字としてカウントされます。

# 「あいうえお」の左から2文字分取り出す
mysql> SELECT LEFT('あいうえお', 2); Enter
+----------------------+
| LEFT('あいうえお',2) |
+----------------------+
| あい                 |
+----------------------+
1 row in set (0.00 sec)

# 「abcde」の左から2文字分を取り出す
mysql> SELECT LEFT('abcde', 2); Enter
+-----------------+
| LEFT('abcde',2) |
+-----------------+
| ab              |
+-----------------+
1 row in set (0.01 sec)

部分文字列の取出(文字列sの右i文字)

unknown

RIGHT(str, len)

文字列strの右端からlen文字分の文字列を返します。
この関数はマルチバイト対応のため、日本語も1文字としてカウントされます。

# 「あいうえお」の右から2文字分取り出す
mysql> SELECT RIGHT('あいうえお', 2); Enter
+-----------------------+
| RIGHT('あいうえお',2) |
+-----------------------+
| えお                  |
+-----------------------+
1 row in set (0.00 sec)

# 「abcde」の右から2文字分を取り出す
mysql> SELECT RIGHT('abcde', 2); Enter
+------------------+
| RIGHT('abcde',2) |
+------------------+
| de               |
+------------------+
1 row in set (0.00 sec)

部分文字列の取出(文字列の位置p以降の文字)
※マルチバイト対応

unknown

SUBSTRING(str, pos)、SUBSTRING(str FROM pos)

文字列str内の位置pos以降の部分文字列を返します。
この関数はマルチバイト対応のため、日本語も1文字としてカウントされます。

# 「あいうえお」の2文字目から最後まで取り出す
mysql> SELECT SUBSTRING('あいうえお', 2); Enter
+---------------------------+
| SUBSTRING('あいうえお',2) |
+---------------------------+
| いうえお                  |
+---------------------------+
1 row in set (0.00 sec)

# 「abcde」の2文字目から最後まで取り出す
mysql> SELECT SUBSTRING('abcde', 2); Enter
+----------------------+
| SUBSTRING('abcde',2) |
+----------------------+
| bcde                 |
+----------------------+
1 row in set (0.00 sec)

部分文字列の取出(文字列の位置p以降のlen文字)
※マルチバイト対応

unknown

SUBSTRING(str, pos, len)、SUBSTRING(str FROM pos FOR len)、MID(str, pos, len)

文字列strの位置pos以降の 長さlen分の部分文字列を返します。
この関数はマルチバイト対応のため、日本語も1文字としてカウントされます。

MID(str,pos,len)関数は、SUBSTRING(str,pos,len)関数のシノニムです。

# 「あいうえお」の2文字目から3文字分取り出す
mysql> SELECT SUBSTRING('あいうえお', 2, 3); Enter
+-----------------------------+
| SUBSTRING('あいうえお',2,3) |
+-----------------------------+
| いうえ                      |
+-----------------------------+
1 row in set (0.00 sec)

# 「abcde」の2文字目から3文字分取り出す
mysql> SELECT SUBSTRING('abcde', 2, 3); Enter
+------------------------+
| SUBSTRING('abcde',2,3) |
+------------------------+
| bcd                    |
+------------------------+
1 row in set (0.00 sec)

部分文字列の取出(文字列をdelimで区切った左からcount個分の文字列)

unknown

SUBSTRING_INDEX(str, delim, count)

引数count正の数を指定した場合

文字列str中に、区切り文字delimcount番目に表れる位置よりの文字列を返します。

mysql> SELECT SUBSTRING_INDEX('あ/い/う/え/お', '/', 2); Enter
+-------------------------------------------+
| SUBSTRING_INDEX('あ/い/う/え/お', '/', 2) |
+-------------------------------------------+
| あ/い                                     |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING_INDEX('a/b/c/d/e', '/', 2); Enter
+--------------------------------------+
| SUBSTRING_INDEX('a/b/c/d/e', '/', 2) |
+--------------------------------------+
| a/b                                  |
+--------------------------------------+
1 row in set (0.00 sec)

引数count負の数を指定した場合

文字列str中に、区切り文字delimcount番目に表れる位置よりの文字列を返します。

mysql> SELECT SUBSTRING_INDEX('あ/い/う/え/お', '/', -2); Enter
+--------------------------------------------+
| SUBSTRING_INDEX('あ/い/う/え/お', '/', -2) |
+--------------------------------------------+
| え/お                                      |
+--------------------------------------------+
1 row in set (0.29 sec)

mysql> SELECT SUBSTRING_INDEX('a/b/c/d/e', '/', -2); Enter
+---------------------------------------+
| SUBSTRING_INDEX('a/b/c/d/e', '/', -2) |
+---------------------------------------+
| d/e                                   |
+---------------------------------------+
1 row in set (0.00 sec)

文字列の左の空白文字を除去

unknown

LTRIM(str)

文字列strから左側の空白文字を削除した文字列を返します。

全角スペースは削除されません

mysql> SELECT LTRIM('    abcde'); Enter
+--------------------+
| LTRIM('    abcde') |
+--------------------+
| abcde              |
+--------------------+
1 row in set (0.00 sec)

文字列の右の空白文字を削除

unknown

RTRIM(str)

文字列strから右の空白スペースを削除した文字列を返します。

全角スペースは削除されません

mysql> SELECT LTRIM('あいうえお '); Enter
+-----------------------+
| LTRIM('あいうえお ') |
+-----------------------+
| あいうえお           |
+-----------------------+
1 row in set (0.00 sec)

mysql> SELECT RTRIM('abcde    '); Enter
+--------------------+
| RTRIM('abcde    ') |
+--------------------+
| abcde              |
+--------------------+
1 row in set (0.00 sec)

文字列から特定の文字列を削除

unknown

TRIM([[BOTH | TRAILING] [remstr] FROM] str)

文字列strから、remstrを削除した文字列を返します。

指定子(BOTHLEADINGTRAILING)が指定されていない場合は、BOTHが適用されます。 remstrが指定されていない場合は、空白スペースが削除されます。

mysql> SELECT TRIM('    abcde    '); Enter
+-----------------------+
| TRIM('    abcde    ') |
+-----------------------+
| abcde                 |
+-----------------------+
1 row in set (0.00 sec)

# 指定子 LEADING を指定した場合
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxABCyyy'); Enter
+------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxABCyyy') |
+------------------------------------+
| ABCyyy                             |
+------------------------------------+
1 row in set (0.00 sec)

# 指定子 TRAILING を指定した場合
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'xxxABCyyy'); Enter
+---------------------------------------+
| TRIM(TRAILING 'xyz' FROM 'xxxABCyyy') |
+---------------------------------------+
| xxxABCyyy                             |
+---------------------------------------+
1 row in set (0.02 sec)

# 指定子 BOTH を指定した場合
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxABCyyy'); Enter
+---------------------------------+
| TRIM(BOTH 'x' FROM 'xxxABCyyy') |
+---------------------------------+
| ABCyyy                          |
+---------------------------------+
1 row in set (0.00 sec)

mysql> SELECT TRIM(BOTH 'と' FROM 'とまと'); Enter
+-------------------------------+
| TRIM(BOTH 'と' FROM 'とまと') |
+-------------------------------+
| ま                            |
+-------------------------------+
1 row in set (0.01 sec)

長さlenになるまで文字列の左を文字列padstrで埋める

unknown

LPAD(str, len, padstr)

文字列strが 長さlenの文字列になるよう、strの左を文字列padstrで埋めた文字列を返します。 strlenより長い場合は、長さlenに縮められた文字列が返ります。

mysql> SELECT LPAD('1', 5, 0); Enter
+---------------+
| LPAD('1',5,0) |
+---------------+
| 00001         |
+---------------+
1 row in set (0.05 sec)

# 日本語は2バイトとして数えられます
mysql> SELECT LPAD('', 6, '★'); Enter
+-----------------+
| LPAD('',6,'★') |
+-----------------+
| ★★★          |
+-----------------+
1 row in set (0.00 sec)

# 日本語は2バイトとして数えられるため、
# 以下のように LPAD('', 5, '★'); とすると文字化けします
mysql> SELECT LPAD('', 5, '★'); Enter
+-----------------+
| LPAD('',5,'★') |
+-----------------+
| ★★・          |
+-----------------+
1 row in set (0.00 sec)

長さlenになるまで文字列の右を文字列padstrで埋める

unknown

RPAD(str, len, padstr)

文字列strが 長さlenの文字列になるよう、strの右を文字列padstrで埋めた文字列を返します。 strlenより長い場合は、長さlenに縮められた文字列が返ります。

mysql> SELECT RPAD('1', 5, 0); Enter
+-----------------+
| RPAD('1', 5, 0) |
+-----------------+
| 10000           |
+-----------------+
1 row in set (0.00 sec)

# 日本語は2バイトとして数えられます
mysql> SELECT RPAD('', 6, '★'); Enter
+-------------------+
| RPAD('', 6, '★') |
+-------------------+
| ★★★            |
+-------------------+
1 row in set (0.00 sec)

# 日本語は2バイトとして数えられるため、
# 以下のように RPAD('', 5, '★'); とすると文字化けします Enter
mysql> SELECT RPAD('', 5, '★'); Enter
+-------------------+
| RPAD('', 5, '★') |
+-------------------+
| ★★・            |
+-------------------+
1 row in set (0.00 sec)

n個の空白文字

unknown

SPACE(N)

N個の空白文字を返します。

mysql> SELECT SPACE(5); Enter
+----------+
| SPACE(5) |
+----------+
|          |
+----------+
1 row in set (0.00 sec)

文字列の反復

unknown

REPEAT(str, count)

文字列strを、count回繰り返した文字列を返します。 count <= 0の場合は、空文字列を返します。 countNULLの場合は、NULLを返します。

mysql> SELECT REPEAT('*', 5); Enter
+---------------+
| REPEAT('*',5) |
+---------------+
| *****         |
+---------------+
1 row in set (0.01 sec)

mysql> SELECT REPEAT('あ', 5); Enter
+-----------------+
| REPEAT('あ', 5) |
+-----------------+
| あああああ      |
+-----------------+
1 row in set (0.00 sec)

文字列sのsoundex文字列

unknown

SOUNDEX(str)

文字列strsoundex文字列を返します。 発音が似通った2つの文字列のsoundex文字列は同じになります。 標準のsoundex文字列の長さは4文字ですが、この関数は任意の長さの文字列を返します。

返り値に対して SUBSTRING()関数を使用すると、標準のsoundex文字列が取得できます。 指定された文字列内の英数字以外の文字は無視されます。A~Zの範囲外のアルファベット文字は全て母音として扱われます。

mysql> SELECT SOUNDEX('Hello'); Enter
+------------------+
| SOUNDEX('Hello') |
+------------------+
| H400             |
+------------------+
1 row in set (0.05 sec)

mysql> SELECT SOUNDEX('Good Morning'); Enter
+-------------------------+
| SOUNDEX('Good Morning') |
+-------------------------+
| G35652                  |
+-------------------------+
1 row in set (0.00 sec)

n=1ならs1、n=2ならs2、・・・を返す

unknown

ELT(N, str1, str2, ... )

数値Nの値によって文字列リストから異なる文字列を返します。

N = 1ならstr1N = 2ならstr2を返します。
N = 0、リスト数以上の値を指定した場合はNULLが返ります。

※ この関数と逆の動作をする場合は、FIELD()関数を使用します。

mysql> SELECT ELT(2, 'a', 'b', 'c'); Enter
+-----------------------+
| ELT(2, 'a', 'b', 'c') |
+-----------------------+
| b                     |
+-----------------------+
1 row in set (0.00 sec)

mysql> SELECT ELT(0, 'a', 'b', 'c'); Enter
+-----------------------+
| ELT(0, 'a', 'b', 'c') |
+-----------------------+
| NULL                  |
+-----------------------+
1 row in set (0.00 sec)

s=s1なら1、s=s2なら2、・・・を返す

unknown

FIELD(str, str1, str2, str3, ... )

文字列strと等しい文字列がリスト中にある数を返します。
文字列strと等しい文字列が見つからない場合は0を返します。

この関数と逆の動作をする場合は、ELT()関数を使用します。

mysql>SELECT FIELD('b', 'a', 'b', 'c'); Enter
+---------------------------+
| FIELD('b', 'a', 'b', 'c') |
+---------------------------+
|                         2 |
+---------------------------+
1 row in set (0.00 sec)

mysql> %SELECT FIELD('x', 'a', 'b', 'c'); Enter
+---------------------------+
| FIELD('x', 'a', 'b', 'c') |
+---------------------------+
|                         0 |
+---------------------------+
1 row in set (0.00 sec)

文字列中の位置

unknown

FIND_IN_SET(str, strlist)

N 個の部分文字列で構成されるリストstrlistに、文字列strが含まれている場合は、1~Nまでのいずれかの値を返します。 リストは、各部分文字列がカンマ区切りで構成された文字列です。

strlistの先頭が ',' で始っていると正しく動作しないので注意して下さい。

第1引数strが定数文字列で、第2引数がSET型のカラムの場合は、ビット演算を使用するよう最適化されます。

strstrlistに含まれていない場合、strlistが空文字列の場合は0を返します。 どちらの引数もNULLの場合はNULLを返します。

mysql> SELECT FIND_IN_SET('b', 'a,b,c,d'); Enter
+-----------------------------+
| FIND_IN_SET('b', 'a,b,c,d') |
+-----------------------------+
|                           2 |
+-----------------------------+
1 row in set (0.09 sec)

ビットbに対応する文字リスト

unknown

MAKE_SET(bits, str1, str2, ... )

ビットbitのセットに対応するビットを有する文字列から成るセット(カンマ区切りの部分文字列を含む文字列)を返します。 NULLの文字列は結果には含まれません。 str1はビット0に、str2はビット1に対応、.... と引数の数だけ続きます。

mysql>  SELECT MAKE_SET(1, 'a', 'b', 'c'); Enter
+----------------------------+
| MAKE_SET(1, 'a', 'b', 'c') |
+----------------------------+
| a                          |
+----------------------------+
1 row in set (0.07 sec)

mysql>  SELECT MAKE_SET(1 | 4, 'hello', 'my', 'friends'); Enter
+-------------------------------------------+
| MAKE_SET(1 | 4, 'hello', 'my', 'friends') |
+-------------------------------------------+
| hello,friends                             |
+-------------------------------------------+
1 row in set (0.09 sec)

数値のビット1を文字列on、ビット0を文字列offにし、区切り文字で区切った文字列を返す

unknown

EXPORT_SET(bits, on, off[, separator[, number_of_bits]])

数値bitsに対し、1のビットを文字列onで表し、0のビットを文字列offで表した文字列を返します。 各文字列間は、区切り文字separator(デフォルトはカンマ)で区切られ、ビット数number_of_bits(デフォルトは64)だけが表示されます。

mysql> SELECT EXPORT_SET(5, 'Y', 'N', ',', 4); Enter
+---------------------------------+
| EXPORT_SET(5, 'Y', 'N', ',', 4) |
+---------------------------------+
| Y,N,Y,N                         |
+---------------------------------+
1 row in set (0.06 sec)

文字列を小文字に変換
※マルチバイト対応

unknown

LOWER(str)、LCASE(str)

文字列str小文字に変換して返します。

LCASE()関数は、LOWER()関数のシノムニです。

mysql> SELECT LOWER('APPLE'); Enter
+----------------+
| LOWER('APPLE') |
+----------------+
| apple          |
+----------------+
1 row in set (0.04 sec)

文字列を大文字に変換
※マルチバイト対応

unknown

UPPER(str)、UCASE(str)

文字列str大文字に変換して返します。

UCASE()関数は、UPPER()関数のシノムニです。

mysql> SELECT UPPER('apple'); Enter
+----------------+
| UPPER('apple') |
+----------------+
| APPLE          |
+----------------+
1 row in set (0.07 sec)

文字列の置換

unknown

REPLACE(str, from_str, to_str)

文字列strにある文字列from_strを全て文字列to_strに置換した文字列を返します。

mysql> SELECT REPLACE('埼玉市','埼玉','さいたま'); Enter
+-------------------------------------+
| REPLACE('埼玉市','埼玉','さいたま') |
+-------------------------------------+
| さいたま市                          |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT REPLACE('林檎の木には林檎がなる', '林檎', 'リンゴ'); Enter
+-----------------------------------------------------+
| REPLACE('林檎の木には林檎がなる', '林檎', 'リンゴ') |
+-----------------------------------------------------+
| リンゴの木にはリンゴがなる                          |
+-----------------------------------------------------+
1 row in set (0.01 sec)

mysql> SELECT REPLACE('ABCDEF','BCDE','bcde'); Enter
+---------------------------------+
| REPLACE('ABCDEF','BCDE','bcde') |
+---------------------------------+
| AbcdeF                          |
+---------------------------------+
1 row in set (0.00 sec)

文字列の反転

unknown

REVERSE(str)

文字列str文字の順序を逆にした文字列を返します。

mysql> SELECT REVERSE('あいうえお'); Enter
+-----------------------+
| REVERSE('あいうえお') |
+-----------------------+
| おえういあ            |
+-----------------------+
1 row in set (0.00 sec)

mysql> SELECT REVERSE('abcde'); Enter
+------------------+
| REVERSE('abcde') |
+------------------+
| edcba            |
+------------------+
1 row in set (0.00 sec)

文字列の位置posからlenバイト分をnewstrに置換
※マルチバイト対応

unknown

INSERT(str, pos, len, newstr)

文字列str内の、位置posから 長さlenの部分文字列を、文字列newstrに置換した文字列を返します。

mysql> SELECT INSERT('ABCDE',2, 3, 'bcd'); Enter
+----------------------------+
| INSERT('ABCDE',2, 3,'bcd') |
+----------------------------+
| AbcdE                      |
+----------------------------+
1 row in set (0.00 sec)

mysql> SELECT INSERT('ABC',2, 1, 'bbb'); Enter
+--------------------------+
| INSERT('ABC',2, 1,'bbb') |
+--------------------------+
| AbbbC                    |
+--------------------------+
1 row in set (0.00 sec)

# 引数 l に 0 を指定した場合は、その位置に、置換文字列 f が挿入されます
mysql> SELECT INSERT('あう',2, 0,'い'); Enter
+--------------------------+
| INSERT('あう',2, 0,'い') |
+--------------------------+
| あいう                   |
+--------------------------+
1 row in set (0.00 sec)

文字列をエスケープ
※MySQL 4.0.3~

unknown

QUOTE(str)

文字列strをSQL文で安全に使用できるよう、引用符で囲んだ文字列を返します。

返り値の文字列は、シングルクウォートで囲まれ、文字列内にシングルクウォートバックスラッシュASCII NULControl-Zが含まれている場合は、その直前にバックスラッシュが挿入されます。 strNULLの場合はNULLという文字列が引用符で囲まれずに返ります。

mysql> SELECT QUOTE(\"Don't Eat!\"); Enter
+---------------------+
| QUOTE(\"Don't Eat!\") |
+---------------------+
| 'Don\'t Eat!'       |
+---------------------+
1 row in set (0.00 sec)

# 引数に NULL を指定した場合は、 
# NULL という文字列が引用符で囲まれずに返ります
mysql> SELECT QUOTE(NULL); Enter
+-------------+
| QUOTE(NULL) |
+-------------+
| NULL        |
+-------------+
1 row in set (0.01 sec)

文字列左端のASCIIコードを取得

unknown

ASCII(str)

文字列strの左端にある文字のASCIIコードを返します。
文字列strが空文字列の場合は0を返し、NULLの場合はNULLを返します。

mysql> SELECT ASCII('2'); Enter
+------------+
| ASCII('2') |
+------------+
|         50 |
+------------+
1 row in set (0.02 sec)

mysql> SELECT ASCII(2); Enter
+----------+
| ASCII(2) |
+----------+
|       50 |
+----------+
1 row in set (0.04 sec)

mysql> SELECT ASCII('dx'); Enter
+-------------+
| ASCII('dx') |
+-------------+
|         100 |
+-------------+
1 row in set (0.00 sec)

# 空文字列を指定すると 0 が返ります
mysql> SELECT ASCII(''); Enter
+-----------+
| ASCII('') |
+-----------+
|         0 |
+-----------+
1 row in set (0.00 sec)

# NULL を指定すると、NULLが返ります
mysql> SELECT ASCII(NULL); Enter
+-------------+
| ASCII(NULL) |
+-------------+
|        NULL |
+-------------+
1 row in set (0.00 sec)

Nのバイナリ文字列式を取得

unknown

BIN(N)

longlong(BIGINT)型の数値Nバイナリ文字列式を返します。 これは、CONV((N, 10, 2)と同じ結果になります。 NNULLの場合はNULLを返します。

mysql> SELECT BIN(12); Enter
+---------+
| BIN(12) |
+---------+
| 1100    |
+---------+
1 row in set (0.00 sec)

文字列ノ長さをビットで取得

unknown

BIT_LENGTH(str)

文字列strの長さをビットで返します。

mysql> SELECT BIT_LENGTH('abc'); Enter
+-------------------+
| BIT_LENGTH('abc') |
+-------------------+
|                24 |
+-------------------+
1 row in set (0.05 sec)

ASCIIコード→文字列に変換

unknown

CHAR(N, ... )

引数Nに指定されたASCIIコードの値リストを文字列に変換して返します。 値がNULLの場合はスキップされます。

mysql> SELECT CHAR(97, 112, 112, 108, 101); Enter
+------------------------------+
| CHAR(97, 112, 112, 108, 101) |
+------------------------------+
| apple                        |
+------------------------------+
1 row in set (0.01 sec)

数値→進数の異なる数値に変換

unknown

CONV(N, from_base, to_base)

数値Nfrom_base進数からto_base進数に変換した数値を文字列として返します。 引数にNULLが含まれる場合はNULLを返します。 引数Nは整数として解釈されますが、整数だけでなく文字列を指定することができます。

進数の最小は「2」、最大は「36」です。 to_baseが負の値の場合、Nは符号付きの数値とみなされますが、それ以外の場合はNは符号なしの数値として処理されます。

mysql> SELECT CONV('a', 16, 2); Enter
+------------------+
| CONV('a', 16, 2) |
+------------------+
| 1010             |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT CONV('6E', 18, 8); Enter
+-------------------+
| CONV('6E', 18, 8) |
+-------------------+
| 172               |
+-------------------+
1 row in set (0.00 sec)

mysql> SELECT CONV(-17, 10, -18); Enter
+--------------------+
| CONV(-17, 10, -18) |
+--------------------+
| -H                 |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT CONV(10+\"10\"+'10'+ 0xa, 10, 10); Enter
+---------------------------------+
| CONV(10+\"10\"+'10'+ 0xa, 10, 10) |
+---------------------------------+
| 40                              |
+---------------------------------+
1 row in set (0.39 sec)

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women