Sql-string-functions

提供:Dev Guides
移動先:案内検索

SQL-文字列関数

SQL文字列関数は、主に文字列操作に使用されます。 次の表は、重要な文字列関数の詳細です-

Sr.No. Function & Description
1

ASCII()

左端の文字の数値を返します

2

BIN()

引数の文字列表現を返します

3

BIT_LENGTH()

引数の長さをビット単位で返します

4

CHAR_LENGTH()

引数の文字数を返します

5

CHAR()

渡された各整数の文字を返します

6

CHARACTER_LENGTH()

CHAR_LENGTH()の同義語

7

CONCAT_WS()

セパレーターで連結を返します

8

CONCAT()

連結された文字列を返します

9

CONV()

異なる数値ベース間で数値を変換します

10

ELT()

インデックス番号の文字列を返します

11

EXPORT_SET()

値ビットに設定されているすべてのビットに対してオン文字列を取得し、設定されていないビットごとにオフ文字列を取得するような文字列を返します

12

FIELD()

後続の引数の最初の引数のインデックス(位置)を返します

13

FIND_IN_SET()

2番目の引数内の最初の引数のインデックス位置を返します

14

FORMAT()

指定された小数点以下の桁数にフォーマットされた数値を返します

15

HEX()

16進値の文字列表現を返します

16

INSERT()

指定した文字数まで、指定した位置に部分文字列を挿入します

17

INSTR()

部分文字列の最初の出現のインデックスを返します

18

LCASE()

LOWER()の同義語

19

LEFT()

指定された左端の文字数を返します

20

LENGTH()

文字列の長さをバイト単位で返します

21

LOAD_FILE()

指定されたファイルをロードします

22

LOCATE()

部分文字列の最初の出現位置を返します

23

LOWER()

引数を小文字で返します

24

LPAD()

指定された文字列で左詰めされた文字列引数を返します

25

LTRIM()

先行スペースを削除します

26

MAKE_SET()

ビットセット内の対応するビットを持つコンマ区切りの文字列のセットを返します

27

MID()

指定された位置から始まる部分文字列を返します

28

OCT()

8進数の引数の文字列表現を返します

29

OCTET_LENGTH()

LENGTH()の同義語

30

ORD()

引数の左端の文字がマルチバイト文字の場合、その文字のコードを返します

31

POSITION()

LOCATE()の同義語

32

QUOTE()

SQLステートメントで使用するために引数をエスケープします

33

REGEXP

正規表現を使用したパターンマッチング

34

REPEAT()

文字列を指定された回数繰り返します

35

REPLACE()

指定した文字列の出現を置き換えます

36

REVERSE()

文字列内の文字を反転します

37

RIGHT()

指定された右端の文字数を返します

38

RPAD()

指定した回数だけ文字列を追加します

39

RTRIM()

末尾のスペースを削除します

40

SOUNDEX()

soundex文字列を返します

41

SOUNDS LIKE

音を比較する

42

SPACE()

指定された数のスペースの文字列を返します

43

STRCMP()

2つの文字列を比較します

44

SUBSTRING_INDEX()

指定した数の区切り文字の前の文字列から部分文字列を返します

45

SUBSTRING(), SUBSTR()

指定された部分文字列を返します

46

TRIM()

先頭および末尾のスペースを削除します

47

UCASE()

UPPER()の同義語

48

UNHEX()

16進数の各ペアを文字に変換します

49

UPPER()

大文字に変換します

[function_ascii]#

ASCII(str)

文字列strの左端の文字の数値を返します。 strが空の文字列の場合、0を返します。 strがNULLの場合、NULLを返します。 ASCII()は、0〜255の数値を持つ文字に対して機能します。

SQL> SELECT ASCII('2');
+---------------------------------------------------------+
| ASCII('2')                                              |
+---------------------------------------------------------+
| 50                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

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

[function_bin]#

BIN(N)

Nのバイナリ値の文字列表現を返します。Nはlonglong(BIGINT)番号です。 これはCONV(N、10,2)と同等です。 NがNULLの場合、NULLを返します。

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

[function_bit-length]#

BIT_LENGTH(str)

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

SQL> SELECT BIT_LENGTH('text');
+---------------------------------------------------------+
| BIT_LENGTH('text')                                      |
+---------------------------------------------------------+
| 32                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_char]#

CHAR(N、…​ [US_charset_name])

CHAR()は、各引数Nを整数として解釈し、それらの整数のコード値で指定された文字で構成される文字列を返します。 NULL値はスキップされます。

SQL> SELECT CHAR(77,121,83,81,'76');
+---------------------------------------------------------+
| CHAR(77,121,83,81,'76')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_char-length]#

CHAR_LENGTH(str)

文字で測定された文字列strの長さを返します。 マルチバイト文字は単一の文字としてカウントされます。 これは、5バイトの2バイト文字を含む文字列の場合、LENGTH()は10を返し、CHAR_LENGTH()は5を返すことを意味します。

SQL> SELECT CHAR_LENGTH("text");
+---------------------------------------------------------+
| CHAR_LENGTH("text")                                     |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_character-length]#

CHARACTER_LENGTH(str)

CHARACTER_LENGTH()はCHAR_LENGTH()の同義語です。

[function_concat]#

CONCAT(str1、str2、…​)

引数を連結した結果の文字列を返します。 1つ以上の引数があります。 すべての引数が非バイナリ文字列である場合、結果は非バイナリ文字列です。 引数にバイナリ文字列が含まれる場合、結果はバイナリ文字列になります。 数値引数は、同等のバイナリ文字列形式に変換されます。あなたはそれを避けたい場合は、この例のように、明示的な型キャストを使用することができます-

SQL> SELECT CONCAT('My', 'S', 'QL');
+---------------------------------------------------------+
| CONCAT('My', 'S', 'QL')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_concat-ws]#

CONCAT_WS(区切り文字、str1、str2、…​)

CONCAT_WS()は、Concatenate With Separatorの略で、CONCAT()の特別な形式です。 最初の引数は、残りの引数の区切り文字です。 連結されるストリングの間にセパレーターが追加されます。 区切り文字は、残りの引数と同様に文字列にすることができます。 区切り文字がNULLの場合、結果はNULLです。

SQL> SELECT CONCAT_WS(',','First name','Last Name' );
+---------------------------------------------------------+
| CONCAT_WS(',','First name','Last Name' )                |
+---------------------------------------------------------+
| First name,Last Name                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_conv]#

CONV(N、from_base、to_base)

異なる数値ベース間で数値を変換します。 ベースfrom_baseからto_baseに変換された数値Nの文字列表現を返します。 引数がNULLの場合、NULLを返します。 引数Nは整数として解釈されますが、整数または文字列として指定できます。 最小ベースは2で、最大ベースは36です。 to_baseが負の数の場合、Nは符号付き数と見なされます。 それ以外の場合、Nは符号なしとして扱われます。 CONV()は、64ビット精度で動作します。

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

[function_elt]#

ELT(N、str1、str2、str3、…​)

N = 1の場合はstr1を返し、N = 2の場合はstr2を返します。 Nが1より小さいか、引数の数より大きい場合、NULLを返します。 ELT()はFIELD()の補完です。

SQL> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| ELT(1, 'ej', 'Heja', 'hej', 'foo')                      |
+---------------------------------------------------------+
| ej                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_export-set]#

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

値ビットに設定されているすべてのビットに対してオン文字列を取得し、値に設定されていないすべてのビットに対してオフ文字列を取得するような文字列を返します。 ビット内のビットは、右から左へ(下位ビットから上位ビットへ)検査されます。 結果に文字列が左から右に追加され、区切り文字列で区切られます(デフォルトはコンマ文字。、。)。 検査されるビット数は、number_of_bitsで指定されます(デフォルトは64)。

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

[function_field]#

FIELD(str、str1、str2、str3、…​)

str1、str2、str3、…​のstrのインデックス(1で始まる位置)を返します。 リスト。 strが見つからない場合は0を返します。

SQL> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
+---------------------------------------------------------+
| FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')          |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_find-in-set]#

FIND_IN_SET(str、strlist)

文字列strがN個の部分文字列で構成される文字列リストstrlistにある場合、1〜Nの範囲の値を返します。

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

[function_format]#

FORMAT(X、D)

数値Xを '#、'、'。##'のような形式にフォーマットし、小数点以下D桁に丸めて、結果をストリングとして返します。 Dが0の場合、結果には小数点も小数部もありません。

SQL> SELECT FORMAT(12332.123456, 4);
+---------------------------------------------------------+
| FORMAT(12332.123456, 4)                                 |
+---------------------------------------------------------+
| 12,332.1235                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_hex]#

HEX(N_or_S)

N_or_Sが数値の場合、Nの16進値の文字列表現を返します。Nはlonglong(BIGINT)数値です。 これはCONV(N、10,16)と同等です。

N_or_Sがストリングの場合、N_or_Sの各文字が2つの16進数字に変換されるN_or_Sの16進ストリング表現を返します。

SQL> SELECT HEX(255);
+---------------------------------------------------------+
| HEX(255)                                                |
+---------------------------------------------------------+
| FF                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT 0x616263;
+---------------------------------------------------------+
| 0x616263                                                |
+---------------------------------------------------------+
| abc                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_insert]#

INSERT(str、pos、len、newstr)

文字列strを返します。位置posから始まる部分文字列と長さlenの文字列を文字列newstrに置き換えます。 posが文字列の長さ内にない場合、元の文字列を返します。 lenが文字列の残りの長さ内にない場合、位置posから文字列の残りを置き換えます。 引数がNULLの場合、NULLを返します。

SQL> SELECT INSERT('Quadratic', 3, 4, 'What');
+---------------------------------------------------------+
| INSERT('Quadratic', 3, 4, 'What')                       |
+---------------------------------------------------------+
| QuWhattic                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_instr]#

INSTR(str、substr)

文字列str内の部分文字列substrの最初の出現位置を返します。 これは、引数の順序が逆になることを除いて、LOCATE()の2つの引数形式と同じです。

SQL> SELECT INSTR('foobarbar', 'bar');
+---------------------------------------------------------+
| INSTR('foobarbar', 'bar')                               |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_lcase]#

LCASE(str)

LCASE()はLOWER()の同義語です。

[function_left]#

LEFT(str、len)

文字列strの左端のlen文字を返します。引数がNULLの場合はNULLを返します。

SQL> SELECT LEFT('foobarbar', 5);
+---------------------------------------------------------+
| LEFT('foobarbar', 5)                                    |
+---------------------------------------------------------+
| fooba                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_length]#

長さ(str)

バイト単位で測定された文字列strの長さを返します。 マルチバイト文字は複数バイトとしてカウントされます。 これは、5バイトの2バイト文字を含む文字列の場合、LENGTH()は10を返し、CHAR_LENGTH()は5を返すことを意味します。

SQL> SELECT LENGTH('text');
+---------------------------------------------------------+
| LENGTH('text')                                          |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_load-file]#

LOAD_FILE(ファイル名)

ファイルを読み取り、ファイルの内容を文字列として返します。 この機能を使用するには、ファイルをサーバーホストに配置し、ファイルへのフルパス名を指定し、FILE権限が必要です。 ファイルはすべて読み取り可能で、サイズはmax_allowed_pa​​cketバイト未満でなければなりません。

上記の条件のいずれかが満たされていないためにファイルが存在しないか、読み取ることができない場合、関数はNULLを返します。

SQL 5.0.19の時点では、character_set_filesystemシステム変数は、リテラル文字列として指定されたファイル名の解釈を制御します。

SQL> UPDATE table_test
   -> SET blob_col=LOAD_FILE('/tmp/picture')
    -> WHERE id=1;
...........................................................

[function_locate]#

LOCATE(substr、str)、LOCATE(substr、str、pos)

最初の構文は、文字列str内の部分文字列substrの最初の出現位置を返します。 2番目の構文は、位置posから始まる、文字列str内の部分文字列substrの最初の出現位置を返します。 substrがstrにない場合、0を返します。

SQL> SELECT LOCATE('bar', 'foobarbar');
+---------------------------------------------------------+
| LOCATE('bar', 'foobarbar')                              |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_lower]#

LOWER(str)

現在の文字セットマッピングに従って、すべての文字が小文字に変更された文字列strを返します。

SQL> SELECT LOWER('QUADRATICALLY');
+---------------------------------------------------------+
| LOWER('QUADRATICALLY')                                  |
+---------------------------------------------------------+
| quadratically                                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_lpad]#

LPAD(str、len、padstr)

文字列strを、len文字の長さまで文字列padstrで左詰めで返します。 strがlenより長い場合、戻り値はlen文字に短縮されます。

SQL> SELECT LPAD('hi',4,'??');
+---------------------------------------------------------+
| LPAD('hi',4,'??')                                       |
+---------------------------------------------------------+
| ??hi                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_ltrim]#

LTRIM(str)

先頭のスペース文字を削除した文字列strを返します。

SQL> SELECT LTRIM('  barbar');
+---------------------------------------------------------+
| LTRIM('  barbar')                                       |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_make-set]#

MAKE_SET(bits、str1、str2、…​)

設定値(。、で区切られた部分文字列を含む文字列)を返します。 文字)ビットセット内の対応するビットを持つ文字列で構成されます。 str1はビット0に対応し、str2はビット1に対応します。 str1、str2、…​のNULL値 結果に追加されません。

SQL> SELECT MAKE_SET(1,'a','b','c');
+---------------------------------------------------------+
| MAKE_SET(1,'a','b','c')                                 |
+---------------------------------------------------------+
| a                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_mid]#

MID(str、pos、len)

MID(str、pos、len)はSUBSTRING(str、pos、len)の同義語です。

[function_oct]#

OCT(N)

Nの8進数値の文字列表現を返します。Nはlonglong(BIGINT)番号です。 これはCONV(N、10,8)と同等です。 NがNULLの場合、NULLを返します。

SQL> SELECT OCT(12);
+---------------------------------------------------------+
| OCT(12)                                                 |
+---------------------------------------------------------+
| 14                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_octet-length]#

OCTET_LENGTH(str)

OCTET_LENGTH()はLENGTH()の同義語です。

[function_ord]#

ORD(str)

文字列strの左端の文字がマルチバイト文字である場合、この式を使用してその構成バイトの数値から計算されたその文字のコードを返します-

  (1st byte code)
+ (2nd byte code . 256)
+ (3rd byte code . 2562) ...

左端の文字がマルチバイト文字でない場合、ORD()はASCII()関数と同じ値を返します。

SQL> SELECT ORD('2');
+---------------------------------------------------------+
| ORD('2')                                                |
+---------------------------------------------------------+
| 50                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_position]#

POSITION(substr IN str)

POSITION(substr IN str)は、LOCATE(substr、str)の同義語です。

[function_quote]#

QUOTE(str)

文字列を引用して、SQLステートメントで適切にエスケープされたデータ値として使用できる結果を生成します。 文字列は、単一引用符で囲まれ、単一引用符( ')、バックスラッシュ(' \ ')、ASCII NUL、およびバックスラッシュが先行するControl-Zの各インスタンスとともに返されます。 引数がNULLの場合、戻り値は単一引用符で囲まれていない「NULL」という単語です。

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

-インストールにこの関数のバグがあるかどうかを確認してから、この関数を使用しないでください。

[operator_regexp]#

expr REGEXPパターン

この関数は、exprとパターンのパターン一致を実行します。 exprがpatに一致する場合、1を返します。それ以外の場合は、0を返します。 exprまたはpatがNULLの場合、結果はNULLです。 REGEXPは、バイナリ文字列で使用する場合を除き、大文字と小文字を区別しません。

SQL> SELECT 'ABCDEF' REGEXP 'A%C%%';
+---------------------------------------------------------+
| 'ABCDEF' REGEXP 'A%C%%'                                 |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

別の例は-

SQL> SELECT 'ABCDE' REGEXP '.*';
+---------------------------------------------------------+
|  'ABCDE' REGEXP '.*'                                    |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

もう1つの例を見てみましょう-

SQL> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
+---------------------------------------------------------+
| 'new*\n*line' REGEXP 'new\\*.\\*line'                   |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_repeat]#

REPEAT(str、count)

count回繰り返された文字列strで構成される文字列を返します。 countが1未満の場合、空の文字列を返します。 strまたはcountがNULLの場合、NULLを返します。

SQL> SELECT REPEAT('SQL', 3);
+---------------------------------------------------------+
| REPEAT('SQL', 3)                                      |
+---------------------------------------------------------+
| SQLSQLSQL                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_replace]#

REPLACE(str、from_str、to_str)

文字列from_strのすべての出現を文字列to_strに置き換えた文字列strを返します。 REPLACE()は、from_strを検索するときに、大文字と小文字を区別した一致を実行します。

SQL> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
+---------------------------------------------------------+
| REPLACE('www.mysql.com', 'w', 'Ww')                     |
+---------------------------------------------------------+
| WwWwWw.mysql.com                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_reverse]#

REVERSE(str)

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

SQL> SELECT REVERSE('abcd');
+---------------------------------------------------------+
| REVERSE('abcd')                                         |
+---------------------------------------------------------+
| dcba                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_right]#

RIGHT(str、len)

文字列strから右端のlen文字を返します。引数がNULLの場合はNULLを返します。

SQL> SELECT RIGHT('foobarbar', 4);
+---------------------------------------------------------+
| RIGHT('foobarbar', 4)                                   |
+---------------------------------------------------------+
| rbar                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_rpad]#

RPAD(str、len、padstr)

文字列strを、長さlen文字まで文字列padstrで右詰めして返します。 strがlenより長い場合、戻り値はlen文字に短縮されます。

SQL> SELECT RPAD('hi',5,'?');
+---------------------------------------------------------+
| RPAD('hi',5,'?')                                        |
+---------------------------------------------------------+
| hi???                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_rtrim]#

RTRIM(str)

末尾のスペース文字を削除した文字列strを返します。

SQL> SELECT RTRIM('barbar   ');
+---------------------------------------------------------+
| RTRIM('barbar   ')                                      |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_soundex]#

SOUNDEX(str)

strからsoundex文字列を返します。 ほぼ同じように聞こえる2つの文字列には、同じsoundex文字列が必要です。 標準のsoundex文字列は4文字の長さですが、SOUNDEX()関数は任意の長さの文字列を返します。 結果にSUBSTRING()を使用して、標準のsoundex文字列を取得できます。 str内のすべての非アルファベット文字は無視されます。 A〜Zの範囲外のすべての国際アルファベット文字は、母音として扱われます。

SQL> SELECT SOUNDEX('Hello');
+---------------------------------------------------------+
| SOUNDEX('Hello')                                        |
+---------------------------------------------------------+
| H400                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[operator_sounds-like]#

expr1 SOUNDS LIKE expr2

これは、SOUNDEX(expr1)= SOUNDEX(expr2)と同じです。

[function_space]#

スペース(N)

N個のスペース文字で構成される文字列を返します。

SQL> SELECT SPACE(6);
+---------------------------------------------------------+
| SELECT SPACE(6)                                         |
+---------------------------------------------------------+
| '      '                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_strcmp]#

STRCMP(str1、str2)

2つの文字列を比較し、両方の文字列が等しい場合は0を返します。最初の引数が現在のソート順に従って2番目の引数よりも小さい場合は-1を返し、そうでない場合は1を返します。

SQL> SELECT STRCMP('MOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'MOHD')                                  |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

別の例は-

SQL> SELECT STRCMP('AMOHD', 'MOHD');
+---------------------------------------------------------+
| STRCMP('AMOHD', 'MOHD')                                 |
+---------------------------------------------------------+
| -1                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

もう1つの例を見てみましょう-

SQL> SELECT STRCMP('MOHD', 'AMOHD');
+---------------------------------------------------------+
| STRCMP('MOHD', 'AMOHD')                                 |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_substring]#

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に負の値を使用できます。

SQL> SELECT SUBSTRING('Quadratically',5);
+---------------------------------------------------------+
| SSUBSTRING('Quadratically',5)                           |
+---------------------------------------------------------+
| ratically                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT SUBSTRING('foobarbar' FROM 4);
+---------------------------------------------------------+
| SUBSTRING('foobarbar' FROM 4)                           |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT SUBSTRING('Quadratically',5,6);
+---------------------------------------------------------+
| SUBSTRING('Quadratically',5,6)                          |
+---------------------------------------------------------+
| ratica                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_substring-index]#

SUBSTRING_INDEX(str、delim、count)

デリミタdelimの出現回数をカウントする前に、文字列strから部分文字列を返します。 countが正の場合、最後の区切り文字の左側(左側から数えて)のすべてが返されます。 countが負の場合は、(右から数えて)最後の区切り文字の右側のすべてが返されます。 SUBSTRING_INDEX()は、delimを検索するときに大文字と小文字を区別した一致を実行します。

SQL> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
+---------------------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '.', 2)                |
+---------------------------------------------------------+
| www.mysql                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_trim]#

TRIM([\ {BOTH | LEADING | TRAILING} [remstr] FROM] str)

TRIM([remstr FROM] str)

すべてのremstrプレフィックスまたはサフィックスが削除された文字列strを返します。 BOTH、LEADING、またはTRAILINGの指定子が指定されていない場合、BOTHが想定されます。 remstrはオプションであり、指定しない場合はスペースが削除されます。

SQL> SELECT TRIM('  bar   ');
+---------------------------------------------------------+
| TRIM('  bar   ')                                        |
+---------------------------------------------------------+
| bar                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(LEADING 'x' FROM 'xxxbarxxx')                      |
+---------------------------------------------------------+
| barxxx                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
+---------------------------------------------------------+
| TRIM(BOTH 'x' FROM 'xxxbarxxx')                         |
+---------------------------------------------------------+
| bar                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQL> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
+---------------------------------------------------------+
| TRIM(TRAILING 'xyz' FROM 'barxxyz')                     |
+---------------------------------------------------------+
| barx                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

[function_ucase]#

UCASE(str)

UCASE()はUPPER()の同義語です。

[function_unhex]#

UNHEX(文字列)

HEX(str)の逆演算を実行します。 つまり、引数内の16進数の各ペアを数値として解釈し、それを数値で表される文字に変換します。 結果の文字はバイナリ文字列として返されます。

SQL> SELECT UNHEX('4D7953514C');
+---------------------------------------------------------+
| UNHEX('4D7953514C')                                     |
+---------------------------------------------------------+
| SQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

引数文字列の文字は、有効な16進数である必要があります: '0' .. '9'、 'A' .. 'F'、 'a' .. 'f'. UNHEX()が引数に16進数以外の数字を検出すると、NULLを返します。

[function_upper]#

UPPER(str)

現在の文字セットマッピングに従って、すべての文字が大文字に変更された文字列strを返します。

SQL> SELECT UPPER('Allah-hus-samad');
+---------------------------------------------------------+
| UPPER('Allah-hus-samad')                                |
+---------------------------------------------------------+
| ALLAH-HUS-SAMAD                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)