ホームページ  >  記事  >  データベース  >  mysqlの文字列関数

mysqlの文字列関数

伊谢尔伦
伊谢尔伦オリジナル
2016-11-23 13:05:29991ブラウズ

結果の長さが max_allowed_pa​​cket システム変数の最大値より大きい場合、文字列値関数の戻り値は NULL になります。

文字列の位置を操作する関数の場合、最初の位置には 1 の番号が付けられます。

ASCII(str)

戻り値は、文字列 str の左端の文字の数値です。 str が空の文字列の場合、戻り値は 0 です。 str が NULL の場合、戻り値は NULL になります。 ASCII()は0から255までの数値を持つ文字に使用されます。

mysql>SELECT ASCII('2');

mysql>SELECT ASCII(2);

mysql>100

ORD()関数を参照。

BIN(N)

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

mysql> SELECT BIN(12);

-> '1100'

BIT_LENGTH(str)

戻り値はバイナリ文字列 str の長さです。

mysql> SELECT BIT_LENGTH('text');

-> 32

CHAR(N,... [USING charset])

CHAR() は、各パラメータ N を整数として認識し、その戻り値を文字列として認識します。これらの整数のコード値によって指定される文字が含まれます。 NULL値は省略されます。

mysql> SELECT CHAR(77,121,83,81,'76');

-> 'MySQL'

CHAR() パラメータは複数の結果文字に変換されます。たとえば、CHAR(256) は CHAR(1,0) と同等であり、CHAR(256*256) は CHAR(1,0,0) と同等です。 , HEX (CHAR(256));

+----------------+----------------+

| (CHAR (1,0)) HEX(CHAR(256)) |

+----------------+------------- ----- -+

| 0100 SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));

+------------- ----------+----- ---------------+

| HEX(CHAR(1,0,0)) | ) |

+------ ------------+------------------------+

|。はバイナリ文字列です。オプションで 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 になります。

CHAR_LENGTH(str)

戻り値は文字列strの長さであり、長さの単位は文字です。マルチバイト文字は 1 文字としてカウントされます。 5 つの 2 バイト文字のセットの場合、LENGTH() は 10 を返し、CHAR_LENGTH() は 5 を返します。

CHARACTER_LENGTH(str)

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

COMPRESS(string_to_compress)

文字列を圧縮します。この関数を使用するには、MySQL が zlib などの圧縮ライブラリを使用して圧縮されている必要があります。それ以外の場合、戻り値は常に NULL になります。 UNCOMPRESS() は圧縮された文字列を解凍できます。

mysql>SELECT LENGTH(COMPRESS(REPEAT('a',1000));

->21

mysql>SELECT LENGTH(COMPRESS(''));

mysql> ; SELECT LENGTH(COMPRESS('a'));

-> 13

mysql> SELECT LENGTH(COMPRESS(REPEAT('a',16)));

圧縮された文字列次のように保存されます:

空の文字列は空の文字列として保存されます。

空でない文字列 4 バイトの長さの非圧縮文字列が保存され (下位バイトが最初)、その後に圧縮文字列が続きます。文字列がスペースで終わる場合、結果の値が CHAR または VARCHAR 型のフィールド列に格納されるときに、末尾のスペースが自動的に削除されないように、最後に「.」が追加されます。 (圧縮文字列の格納に CHAR または VARCHAR を使用することはお勧めできません。代わりに BLOB 列を使用することをお勧めします)。

CONCAT(str1,str2,...)

戻り結果は、接続パラメータによって生成された文字列です。いずれかのパラメータが NULL の場合、戻り値は NULL になります。 1 つ以上のパラメータが存在する場合があります。 すべての引数が非バイナリ文字列の場合、結果は非バイナリ文字列になります。 引数にバイナリ文字列が含まれている場合、結果はバイナリ文字列になります。数値パラメータは同等のバイナリ文字列形式に変換されます。これを回避するには、次のように明示的な型キャストを使用します。 SELECT CONCAT(CAST(int_col AS CHAR), char_col)

mysql> '、'QL');

-> 'MySQL'

mysql> SELECT CONCAT('My', NULL, 'QL');

-> NULL

mysql>

CONCAT_WS() は CONCAT With Separator の略で、CONCAT() の特別な形式です。最初のパラメータは他のパラメータの区切り文字です。区切り文字の位置は、連結する 2 つの文字列の間に配置されます。区切り文字には文字列またはその他のパラメータを使用できます。区切り文字が NULL の場合、結果は NULL になります。この関数は、区切り文字引数の後の NULL 値を無視します。

mysql> SELECT CONCAT_WS(',','名','セカンドネーム','姓');

-> 'ファーストネーム,セカンドネーム,ラストネーム'

mysql> ,','名',NULL,'姓');

-> '名,姓'

CONCAT_WS() は空の文字列を無視しません。 (ただし、NULL はすべて無視されます)。

CONV(N,from_base,to_base)

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

SELECT CONV('a',16,2);

-> '1010'

-> mysql> SELECT CONV(-17,10,-18);

-> '-H'

SELECT CONV(10+'10'+'10'+0xa,10,10);

- > '40'

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

N = 1 の場合、戻り値は str1 になり、N = 2 の場合、戻り値は str2 になります。 N が 1 未満、またはパラメータの数より大きい場合、戻り値は NULL になります。 ELT() は FIELD() を補うものです。

mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');

-> 'ej'

mysql> , 'hej', 'foo');

-> 'foo'

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

戻り値は文字列で、ビット値はビット グループごとにオン文字列を取得でき、クリアされたビットごとにオフ文字列を取得できます。ビット単位のビット値は右から左(下位ビットから上位ビット)にチェックされます。区切り文字列 (デフォルトではカンマ「,」) で区切られた文字列が左から右の順序で結果に追加されます。 number_of_bits はテストされるビット数を示します (デフォルトは 64)。

mysql> SELECT EXPORT_SET(5,'Y','N',',',4);

-> 'Y,N,Y,N'

mysql> ,'0',',',10);

-> '0,1,1,0,0,0,0,0,0,0'

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

戻り値は、str1、str2、str3、...のリスト内のstrインデックスです。 str が見つからない場合、戻り値は 0 です。

FIELD() のすべてのパラメータが文字列の場合、すべてのパラメータは文字列として比較されます。すべての引数が数値の場合、比較は数値的に行われます。それ以外の場合、パラメータは 2 倍として比較されます。

str が NULL の場合、NULL はどの値とも同等に比較できないため、戻り値は 0 になります。 FIELD() は ELT() を補うものです。

mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');

-> 2

MYSQL> Hej', 'ej', 'Heja', 'hej', 'foo');

-> 0

FIND_IN_SET(str,strlist)

文字列 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

FORMAT(X,D)

セット番号

HEX(N_or_S)

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

N_OR_S が文字列の場合、戻り値は N_OR_S の 16 進文字列表現であり、各 N_OR_S の各文字は 2 つの 16 進数に変換されます。

SELECT HEX(255); 'FF'

INSERT;

文字列 str を返します。この部分文字列は pos の位置で始まり、len 文字が文字列 newstr で置き換えられます。 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'

この関数はマルチバイト文字をサポートします。

INSTR(str,substr)

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

mysql> SELECT INSTR('foobarbar', 'bar');

-> 4

mysql> 0

バイト文字であり、少なくとも 1 つの引数がバイナリ文字列である場合にのみ大文字と小文字が区別されます。

LCASE(str)

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

LEFT(str,len)

文字列strから始まるlenの左端の文字を返します。

mysql> SELECT LEFT('foobarbar', 5);

-> 'foaba'

LENGTH(str)

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

mysql> SELECT LENGTH('text');

-> 4

LOAD_FILE(file_name)

ファイルを読み取り、文字列形式でファイルを返します。 ファイルの場所はサーバー上にある必要があり、ファイルに絶対パス名を指定する必要があり、FILE 権限を持っている必要があります。ファイルは読み取り可能である必要があり、ファイル サイズは max_allowed_pa​​cket バイト未満である必要があります。

ファイルが存在しない場合、または上記の条件を満たさないため読み込めない場合、関数の戻り値はNULLとなります。

mysql> UPDATE tbl_name

SET blob_column=LOAD_FILE('/tmp/picture')

WHERE id=1;

LOCATE(substr,str) , LOCATE(substr,str,pos)

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

mysql> SELECT LOCATE('bar', 'foobarbar');

-> 4

mysql> 0

mysql> ATE ( 'bar', 'foobarbar',5);

-> 7

この関数はマルチバイト文字をサポートし、少なくとも 1 つの引数がバイナリ文字列である場合にのみ大文字と小文字が区別されます。

LOWER(str)

文字列 str と、最新の文字セット マッピング テーブルに従って小文字に変更されたすべての文字を返します (デフォルトは cp1252 Latin1)。

mysql> SELECT LOWER('QUADRATICALLY');

-> 'quadratically'

この関数はマルチバイト文字をサポートしています。

LPAD(str,len,padstr)

は、文字列 str を返します。左側に文字列 Padstr が len 文字の長さまで埋め込まれます。 str の長さが len より大きい場合、戻り値は len 文字に短縮されます。

mysql> SELECT LPAD('hi',4,'??');

-> '??hi'

mysql> -> 'h'

LTRIM(str)

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

mysql> SELECT LTRIM(' barbar');

-> 'barbar'

この関数はマルチバイト文字をサポートしています。

MAKE_SET(ビット,str1,str2,...)

返回一个设定值 (一个包含被‘,’号分开的字字符串的字符串) ,由在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)

MID(str,pos,len) 是 SUBSTRING(str,pos,len)的同义词。

OCT(N)

返回一个 N的八进制值的字符串表示,其中 N 是一个longlong (BIGINT)数。这等同于CONV(N,10,8)。若N 为 NULL ,则返回值为NULL。

mysql> SELECT OCT(12);

-> '14'

OCTET_LENGTH(str)

OCTET_LENGTH() 是 LENGTH()的同义词。

ORD(str)

若字符串str 的最左字符是一个多字节字符,则返回该字符的代码, 代码的计算通过使用以下公式计算其组成字节的数值而得出:

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

假如最左字符不是一个多字节字符,那么 ORD()和函数ASCII()返回相同的值。

mysql> SELECT ORD('2');

-> 50

POSITION(substr IN str)

POSITION(substr IN str)是 LOCATE(substr,str)同义词。

QUOTE(str)

引证一个字符串,由此产生一个在SQL语句中可用作完全转义数据值的结果。  返回的字符串由单引号标注,每例都带有单引号 (‘'’)、 反斜线符号 (‘\’)、 ASCII NUL以及前面有反斜线符号的Control-Z 。如果自变量的值为NULL, 则返回不带单引号的单词 “NULL”。

mysql> SELECT QUOTE('Don\'t!');

-> 'Don\'t!'

mysql> SELECT QUOTE(NULL);

-> NULL

REPEAT(str,count)

返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。 若 count aa9166a2c05d262cc43406462b632926 SELECT REPEAT('MySQL', 3);

-> 'MySQLMySQLMySQL'

REPLACE(str,from_str,to_str)

返回字符串str 以及所有被字符串to_str替代的字符串from_str 。

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');

-> 'WwWwWw.mysql.com'

这个函数支持多字节字元。

REVERSE(str)

返回字符串 str ,顺序和字符顺序相反。

mysql> SELECT REVERSE('abc');

-> 'cba'

这个函数支持多字节字元。

RIGHT(str,len)

从字符串str 开始,返回最右len 字符。

mysql> SELECT RIGHT('foobarbar', 4);

-> 'rbar'

这个函数支持多字节字元。

RPAD(str,len,padstr)

返回字符串str, 其右边被字符串 padstr填补至len 字符长度。假如字符串str 的长度大于 len,则返回值被缩短到与 len 字符相同长度。

mysql> SELECT RPAD('hi',5,'?');

-> 'hi???'

mysql> SELECT RPAD('hi',1,'?');

-> 'h'

这个函数支持多字节字元。

RTRIM(str)

返回字符串 str ,结尾空格字符被删去。

mysql> SELECT RTRIM('barbar   ');

-> 'barbar'

这个函数支持多字节字元。

SOUNDEX(str)

从str返回一个soundex字符串。 两个具有几乎同样探测的字符串应该具有同样的 soundex 字符串。一个标准的soundex字符串的长度为4个字符,然而SOUNDEX() 函数会返回一个人以长度的字符串。 可使用结果中的SUBSTRING() 来得到一个标准 soundex 字符串。在str中,会忽略所有未按照字母顺序排列的字符。 所有不在A-Z范围之内的国际字母符号被视为元音字母。

mysql> SELECT SOUNDEX('Hello');

-> 'H400'

mysql> SELECT SOUNDEX('Quadratically');

-> 'Q36324'

注: この関数は、(D. Knuth によって説明された) より一般的な拡張バージョンではなく、オリジナルの Soundex アルゴリズムを実装しています。違いは、元のバージョンでは最初に母音が削除され、次に繰り返しが削除されるのに対し、拡張バージョンでは最初に繰り返しが削除され、次に母音が削除されることです。

expr1 SOUNDS LIKE expr2

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

SPACE(N)

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

mysql> SELECT SPACE(6);

-> ' ' '

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

len パラメータを指定しない形式は、文字列 str の位置 pos から始まる部分文字列を返します。 len パラメータを指定した形式では、文字列 str の位置 pos から始まる len 文字と同じ長さの部分文字列が返されます。 FROM を使用した形式は標準の SQL 構文です。 pos に負の値を使用することもできます。その場合、部分文字列の位置は、文字列の先頭ではなく、文字列の末尾の pos 文字から始まります。次の形式の関数では、pos に負の値を使用できます。

mysql> SELECT SUBSTRING('Quadratally',5);

-> 'ratally'

mysql> 'ratica'

> gt; SELECT SUBSTRING('サキラ', -3);

-> 'ila'

mysql>SELECT SUBSTRING('サキラ', -5, 3);

-> ('Sakila' FROM -4 FOR 2);

-> 'ki'

この関数はマルチバイト文字元をサポートしています。

len に 1 未満の値が使用された場合、結果は常に空の文字列になることに注意してください。

SUBSTR() は SUBSTRING() の同義語です。

SUBSTRING_INDEX(str,delim,count)

区切り文字 delim と count が現れる前の文字列 str から自己文字列を返します。 count が正の値の場合、最後の区切り文字の左側にあるすべて (左から開始) が返されます。 count が負の場合、区切り文字の右側にあるすべて (右から開始) が返されます。

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、LEADIN、TRAILING のいずれも指定されていない場合は、BOTH とみなされます。 remstr はオプションであり、指定しない場合はスペースを削除できます。

mysql> SELECT TRIM(' bar ');

-> 'bar'

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');

-> 'bar'

mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');

-> 'barx'

この関数はマルチバイト文字をサポートしています。

UCASE(str)

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

UNCOMPRESS(string_to_uncompress)

COMPRESS() 関数で圧縮された文字列を解凍します。引数が圧縮値の場合、結果は NULL になります。この関数を使用するには、MySQL が zlib などの圧縮ライブラリを使用してコンパイルされている必要があります。それ以外の場合、戻り値は常に NULL になります。

mysql> SELECT UNCOMPRESS(COMPRESS('任意の文字列'));

-> '任意の文字列'

mysql>

圧縮前の圧縮文字列の長さを返します。

mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30)));

-> 30

UNHEX(str)

HEX(str) の逆の操作を実行します。つまり、パラメーター内の 16 進数の各ペアを数値として認識し、その数値で表される文字に変換します。結果の文字はバイナリ文字列として返されます。

mysql> SELECT UNHEX('4D7953514C');

-> 'MySQL'

mysql> '文字列'

> ; 16 進数を選択( UNHEX('1267'));

-> '1267'

UPPER(str)

文字列 str を返し、大文字に変換された最新の文字セットに従ってマップします (デフォルトは cp1252 Latin1)。

mysql> SELECT UPPER('Hej');

->

この機能はマルチバイト文字をサポートしています。

1. 文字列比較関数

MySQL に従って、数値と文字列を自動的に変換します。

mysql> SELECT 1+'1';

-> SELECT CONCAT(2,' test');

-> '2 test'

;文字列の場合は、CAST() 関数または CONCAT() 関数を使用できます。 ) ;

-> 38.8, '38.8'

CAST() が望ましいです。 .

バイナリ文字列が文字列関数のパラメータとして指定された場合、結果の文字列もバイナリ文字列になります。文字列に変換された数値はバイナリ文字列として扱われます。これは比較結果にのみ影響します。

一般的に、文字列比較の式で大文字と小文字が区別される場合、比較でも大文字と小文字が区別されます。

expr LIKE pat [ESCAPE 'escape-char']

SQL の単純な正規表現比較を使用したパターン マッチング。 1 (TRUE) または 0 (FALSE) を返します。 expr または pat のいずれかが NULL の場合、結果は NULL になります。

パターンはリテラル文字列である必要はありません。たとえば、文字列式またはテーブル列として指定できます。

次の 2 つのワイルドカードは、パターン内で LIKE とともに使用できます。

文字の説明

% 任意の数の文字 (ゼロ文字も含む) に一致します

_ 1 種類の文字のみに一致します

mysql> SELECT 'David!' LIKE 'David_';

-> 1

mysql> SELECT 'David!' LIKE '%D%v%';

-> ワイルドカードのリテラル インスタンスをテストするには、がこの文字の前に配置されます。 ESCAPE 文字が指定されていない場合は、「 」が想定されます。

文字列 説明

% '%' 文字に一致

_ '_' 文字に一致

mysql> LIKE 'David_';

mysql& gt;熱心な_ ' LIKE 'David_';

-> 1

別のエスケープ文字を指定するには、ESCAPE ステートメントを使用します:

mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';

- > 1

エスケープ シーケンスは空または 1 文字の長さにすることができます。 MySQL 5.1.2 以降、NO_BACKSLASH_ESCAPES SQL モードがアクティブ化されている場合、シーケンスを空にすることはできません。

次の 2 つのステートメントは、オペランドの 1 つがバイナリ文字列でない限り、文字列比較では大文字と小文字が区別されないことを示しています。 ' LIKE BINARY 'ABC';

-> 0

MySQL では、LIKE を数値式に使用できます。 (これは標準 SQL LIKE の拡張です)。

mysql> SELECT 10 LIKE '1%';

-> 1

注: MySQL は文字列内で C エスケープ構文を使用するため (たとえば、改行文字を表すには 'n' を使用します)、LIKE 文字列では、使用する '' は二重に記述する必要があります。たとえば、「n」を検索するには、「\n」と記述する必要があります。 '' を検索したい場合は、'\\' として記述する必要があります。その理由は、バックスラッシュ記号が構文パーサーによって一度削除され、パターン マッチングの実行時に再度削除され、最終的にバックスラッシュ記号が 1 つ存在するためです。バックスラッシュ記号は照合に使用できます。

expr NOT LIKE pat [ESCAPE 'escape-char']

これは NOT (expr LIKE pat [ESCAPE 'escape-char']) と同等です。

expr NOT REGEXP pat expr NOT RLIKE pat

これは NOT (expr REGEXP pat) と同等です。

expr REGEXP pat expr RLIKE pat

文字列式 expr とパターン pat のパターンマッチングを行います。パターンは正規表現に拡張できます。 expr が pat に一致する場合は 1 を返し、それ以外の場合は 0 を返します。 expr または pat のいずれかが NULL の場合、結果は NULL になります。 RLIKE は REGEXP の同義語であり、その機能は mSQL との互換性を提供することです。

パターンはリテラル文字列である必要はありません。たとえば、文字列式またはテーブル列として指定できます。

注: MySQL は文字列内で C エスケープ構文を使用するため (たとえば、改行文字を表すために「n」を使用する)、REGEXP 文字列で使用される「」を 2 倍にする必要があります。

REGEXP は、バイナリ文字列で使用されない限り、大文字と小文字が区別されません。

mysql> 正規表現 'm%y%%';

> 正規表現 '.*';

-> 1

mysql> SELECT 'new*n*line' 正規表現 'new\*.\*line';

-> 1

mysql> SELECT 'A', 'a' REGEXP BINARY 'A';

-> 1 0

mysql> SELECT 'a' REGEXP '^[a-d]';

-> 文字タイプを決定する場合、REGEXP と RLIKE は現在の文字を使用します。設定します (デフォルトは cp1252 Latin1 です)。警告: これらの演算子はマルチバイト文字をサポートしません。

STRCMP(expr1,expr2)

すべての文字列が同じ場合、現在の分類順序に従って最初のパラメータが 2 番目のパラメータより小さい場合、STRCMP() が返され、-1 が返されます。他の場合。

mysql> SELECT STRCMP('text', 'text2');

-> -1

mysql> 0

STRCMP()比較を実行するときの現在の文字セット。これにより、一方または両方のオペランドがバイナリ文字列である場合を除き、デフォルトの比較で大文字と小文字が区別されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:mysql数値関数次の記事:mysql数値関数