首頁 資料庫 mysql教程 mysql字串函數

mysql字串函數

Nov 23, 2016 pm 01:05 PM
mysql 字串函數

假如結果的長度大於 max_allowed_pa​​cket 系統變數的最大值時,字串值函數的回傳值為NULL。

對於在字串位置上操作的函數,第一個位置的編號為 1。

ASCII(str)

傳回值為字串str 的最左字元的數值。假如str為空字串,則傳回值為 0 。假如str 為NULL,則傳回值為 NULL。 ASCII()用於帶有從 0到255的數值的字元。

mysql> SELECT ASCII('2');

-> 50

mysql> SELECT ASCII(2);

-> 50

'my>SC(Smy);

見 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'

mysql> SELECT CHAR(77,77.3,'77.3');

大於 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           |

sql+

my> 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。

CHAR_LENGTH(str)

傳回值為字串str 的長度,長度的單位為字元。一個多位元組字元算一個單字元。對於一個包含五個二位元組字元集, 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(COMCOMPRESS('')));

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

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

>

-ECT (COMPRESS('a'));

-> 13

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

-> 15

後的字串的內容依下列壓縮方式儲存:

空字串依照空字串儲存。

非空字串未壓縮字串的四位元組長度進行儲存(首先為低位元組),後面是壓縮字串。如果字串以空格結尾,就會在後面加上一個"."號,以防止當結果值是儲存在CHAR或VARCHAR類型的欄位欄位時,出現自動把結尾空格去掉的現象。 (不建議使用 CHAR 或VARCHAR 來儲存壓縮字串。最好使用一個 BLOB 列來代替)。

CONCAT(str1,str2,...)

傳回結果為連接參數所產生的字串。如有任何一個參數為NULL ,則傳回值為 NULL。或許有一個或多個參數。 如果所有參數均為非二進位字串,則結果為非二進位字串。 如果自變數中含有任一二進位字串,則結果為一個二進位字串。數字參數轉換為與之相等的二進位字串格式;若要避免此情況,可使用明確型別 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

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

-> 'MySQL'

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

-> NULL

mysql> SELECT CONCAT(14.3)CAT

mysql> SELECT CONCAT(14.3) separator,str1,str2,...)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一個參數是其它參數的分隔符號。分隔符號的位置放在要連接的兩個字串之間。分隔符號可以是一個字串,也可以是其它參數。如果分隔符號為 NULL,則結果為NULL。函數會忽略任何分隔符號參數後的 NULL 值。

mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');

-> 'First name,Second name,Last Name'

-> 'First name,Second name,Last Name'

my>, SELECT) ','First name',NULL,'Last Name');

-> 'First name,Last Name'

CONCAT_WS()不會忽略任何空字串。 (然而會忽略所有的 NULL)。

CONV(N,from_base,to_base)

不同數基間轉換數字。傳回值為數字的N字串表示,由from_base基底轉換為 to_base 基。如有任一個參數為NULL,則傳回值為 NULL。自變數 N 被理解為一個整數,但是可以被指定為一個整數或字串。最小基數為 2 ,而最大基數則為36。 If to_base 是一個負數,則 N 被視為一個帶符號數。否則, N 被視為無符號數。 CONV() 的運作精確度為 64位元。

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

-> '1010'

mysql> SELECT CONV('6E',18,8);

-> '172'

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

-> '-H'

mysql> 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> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');

-> 'foo'

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

傳回值為一個字串,其中對於bits值中的每bits]])

傳回值為一個字串,其中對於bits值中的每bits個位元組,可以得到一個 on 字串,而對於每個清除位元位元,可以得到一個off字串。 bits 中的位元值依照從右到左的順序接受檢驗 (由低位元位元到高位元位元)。字串被分隔字串分開(預設為逗號‘,’),按照從左到右的順序被加到結果中。 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'

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

回傳值為str1, str2, str3,…清單中的str 指數。在找不到str 的情況下,回傳值為 0 。

如果所有對於FIELD() 的參數均為字串,則所有參數均按照字串進行比較。如果所有的參數均為數字,則依照數字進行比較。否則,參數會按照雙倍進行比較。

如果str 為NULL,則傳回值為0 ,原因是NULL不能以同任何值進行同等比較。 FIELD() 是ELT()的補數。

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

-> 2

mysql> SELECT FIELD('fofo', 'Hejj('fo ', 'ej', 'Heja', 'hej', 'foo');

-> 0

FIND_IN_SET(str,strlist)

假如字串str 在由N 子鏈組成的字串清單strlist 中, 則傳回值的範圍在 1 到 N 之間。一個字串列表就是一個由一些被‘,’符號分開的自鏈組成的字串。如果第一個參數是常數字串,而第二個是type SET列,則   FIND_IN_SET() 函數被最佳化,使用位元計算。如果str不在strlist 或strlist 為空字串,則傳回值為 0 。如任意一個參數為NULL,則傳回值為NULL。 這個函數在第一個參數包含一個逗號(‘,’)時將無法正常運作。

mysql> SELECT FIND_IN_SET('b','a,b,c,d');

-> 2

FORMAT(X,D)🎜

將number X設定為格式 '#,###,###.##', 以四捨五入的方式保留到小數點後D位元, 而傳回結果為字串。

HEX(N_or_S)

如果N_OR_S 是一個數字,則回傳一個 十六進位值 N 的字串表示,在這裡,   N 是一個longlong (BIGINT)數。這相當於 CONV(N,10,16)。

如果N_OR_S 是一個字串,則傳回一個值為N_OR_S的十六進位字串表示, 其中每個N_OR_S 裡的每個字元都轉換為兩個十六進位數字。

mysql> SELECT HEX(255);

-> 'FF'

mysql> SELECT 0x616263;

-> 'abc'4

INSERT(str,pos,len,newstr)

回傳字串 str, 其子字串起始於 pos 位置及長期被字串 newstr取代的len 字元。  如果pos 超過字串長度,則傳回值為原始字串。 假如len的長度大於其它字串的長度,則從位置pos開始替換。若任何一個參數為null,則傳回值為NULL。

mysql> SELECT INSERT('Quadratic', 3, 4, 'What');

-> 'QuWhattic'

mysql> SELECT INSERT('Quadratic', -

mysql> SELECT INSERT('Quadratic', -3, 4, 'Wmysql> -> 'Quadratic'

mysql> SELECT INSERT('Quadratic', 3, 100, 'What');

-> 'QuWhat'

這個函數支援多位元組字元。

INSTR(str,substr)

回傳字串 str 中子字串的第一個出現位置。這和LOCATE()的雙參數形式相同,除非參數的順序被顛倒。

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

-> 4

mysql> SELECT INSTR('xbar', 'foobar');

-> 0字符,並且只有當至少有一個參數是二進位字串時區分大小寫。

LCASE(str)

LCASE() 是 LOWER()的同義詞。

LEFT(str,len)

傳回從字串str 開始的len 最左字元。

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

-> 'fooba'

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;

傳回字串 str中子字串substr的第一個出現位置。第二個語法傳回字串 str中子字串substr的第一個出現位置, 起始位置在pos。如若substr 不在str中,則傳回值為0。

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

-> 4

mysql> SELECT LOCATE('xbar', 'foobar');

-> OCATE bar', 'foobarbar',5);

-> 7

這個函數支援多位元組字符,並且只有當至少有一個參數是二進位字串時區分大小寫。

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> SELECT LPAD('hi',1,'??');

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

-

- > 'h'

LTRIM(str)

回傳字串 str ,其引導空格字元被刪除。

mysql> SELECT LTRIM('  barbar');

-> 'barbar'

這個函數支援多位元組字元。

MAKE_SET(bits,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 <= 0,则返回一个空字符串。若str 或count 为 NULL,则返回 NULL 。

mysql> 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'

注意:這個函數執行原始的Soundex演算法,而非更流行的加強版本(如D. Knuth所述)。其差異在於原始版本會先刪除母音,其次是重複,而加強版則先刪除重複,而後刪去母音。

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), SUBSTRING 不帶有len 參數的格式從字串str傳回一個子字串,起始於位置 pos。帶有len參數的格式從字串str傳回一個長度同len字元相同的子字串,起始於位置 pos。 使用 FROM的格式為標準 SQL 語法。也可能對pos使用一個負值。假若這樣,則子字串的位置起始於字串結尾的pos 字符,而不是字串的開頭位置。在以下格式的函數中可以對pos 使用一個負值。

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

-> 'ratically'

mysql> SELECT SUBSTRING('foobarbarbar' FROM 4);

p]

-

. Quadratically',5,6);

-> 'ratica'

mysql> SELECT SUBSTRING('Sakila', -3);

-> 'ila'

my> SELECT SUBING(5'SELECT S5ING5' , 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為負值,則傳回定界符(從右邊開始)右邊的一切內容。

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);

-> 'www.mysql'

mysql> SELECT SUBSTRING_INDEX('www.my'.com', 'www.my'.com'www. -2);

-> 'mysql.com'

這個函數支援多位元組字元。

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

傳回字串 str ,其中所有remstr 都已刪除。若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設為BOTH 。 remstr 為可選項,在未指定情況下,可刪除空格。

mysql> SELECT TRIM('  bar   ');

-> 'bar'

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); TR7barLEADING ' BOTH '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('any string'));

-> 'any string'

mysql> SELECT UNCOMPRESS('any string');com

傳回壓縮字串壓縮前的長度。

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

-> 30

UNHEX(str)

執行從HEX(str)的反向操作。就是說,它將參數中的每一對十六進制數字理解為一個數字,並將其轉換為該數字所代表的字元。結果字元以二進位字串的形式傳回。

mysql> SELECT UNHEX('4D7953514C');

-> 'MySQL'

mysql> SELECT 0x4D7953514CEX

mysql> SELECT 0x4D7953514C;

mysql> SELECT 0x4D7953514CEX

-> 'string'

mysql> SELECT HEX(UNHEX('1267'));

-> '1267'

UPPER(str)

傳回字串, 以及根據最新字元集對應為大寫字母集的字元 (預設為cp1252 Latin1).

mysql> SELECT UPPER('Hej');

-> 'HEJ'

此函數支援多位元組字符。

1. 字串比較函數

根據,MySQL 會自動將數字轉換為字串,反之亦然。

mysql> SELECT 1+'1';

-> 2

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

-> '2 test'

串,可使用 CAST()或 CONCAT()函數:

mysql> SELECT 38.8, CAST(38.8 AS CHAR);

-> 38.8, '38.8'

-> 38.8, '38.8'

CAST() 比較可取。 .

若已經對一個字串函數給定一個二進位字串作為參數, 則所得到的結果字串也是一個二進位字串。一個轉化為字串的數字被當作二進位字串對待。這只會對比較結果產生影響。

一般而言, 若字串比較中任一個表達式是區分大小寫的,則執行比較時也區分大小寫。

expr LIKE pat [ESCAPE 'escape-char']

模式匹配,使用SQL簡單正規表達式比較。回1 (TRUE) 或 0 (FALSE)。 若 expr 或 pat 中任一為 NULL,則結果為NULL。

模式不需要為文字字串。例如,可以被指定為一個字串表達式或表列。

在模式中可以同LIKE一起使用以下兩種通配符:

字符   說明   

%    匹配任何數目的字符,甚至包括零字符 我 

. LIKE 'David_';

-> 1

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

-> 1

若要對通配符的文字實例進行檢驗, 放在該字元前面。如果沒有指定 ESCAPE字元, 則假設為‘’。

字串   說明   

%    符合一個  '%'字元   

_    符合一個'_' 字元 

mysql> SELECT 'David_' LIKE 'David_';

-> 1

要指定一個不同的轉義字元,可使用ESCAPE語句:

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

> 1

轉義序列可以為空,也可以是一個字元的長度。 從 MySQL 5.1.2開始, 如若 NO_BACKSLASH_ESCAPES SQL模式啟動, 則該序列不能為空。

以下兩個語句舉例說明了字串比較不區分大小寫,除非其中一個運算元為二進位字串:

mysql> SELECT 'abc' LIKE 'ABC';

-> 1

-> 1

mysql>

mysql> 'abc' LIKE BINARY 'ABC';

-> 0

在MySQL中, LIKE 允許出現在數位表達式中。 (這是標準SQL LIKE 的延伸)。

mysql> SELECT 10 LIKE '1%';

-> 1

註解: 由於 MySQL在字串中使用 C轉義語法(例如, 用'n'代表一個換行字元),在LILIKE字串中,必須將用到的''雙寫。例如, 若要找 ‘n’, 必須將其寫成 ‘\n’。而若要查找'', 則必須將其寫成 it as '\\';原因是反斜線符號會被語法分析程式剝離一次,在進行模式配對時,又會被剝離一次,最後會剩下一個反斜線符號接受匹配。

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字串中必須將用到的‘’ 雙寫。

REGEXP 不區分大小寫, 除非將其同二進位字串同時使用。

mysql> SELECT 'Monty!' REGEXP 'm%y%%';

-> 0

mysql> SELECT 'Monty!' REGEXP '.*';

mysql> SELECT 'Monty!' REGEXP '.*';

-> 1

mysql> SELECT 'new*n*line' REGEXP 'new\*.\*line';

-> 1

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

-> 1  0

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

-> 1

在確定字符類型時,REGEXP 和 RKE  Latin1 )。 警告:這些操作符不支援多位元組字符。

STRCMP(expr1,expr2)

若所有的字串皆相同,則傳回STRCMP(),若依目前分類次序,第一個參數小於第二個,則傳回  -1,其它情況回傳 1。

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

-> -1

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

-> 1115); 'text', 'text');

-> 0

在執行比較時,STRCMP() 使用目前字元集。這使得預設的比較區分大小寫,當操作數中的一個或兩個都是二進位字串時除外。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL的角色:Web應用程序中的數據庫 MySQL的角色:Web應用程序中的數據庫 Apr 17, 2025 am 12:23 AM

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

解決數據庫連接問題:使用minii/db庫的實際案例 解決數據庫連接問題:使用minii/db庫的實際案例 Apr 18, 2025 am 07:09 AM

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

centos7如何安裝mysql centos7如何安裝mysql Apr 14, 2025 pm 08:30 PM

優雅安裝 MySQL 的關鍵在於添加 MySQL 官方倉庫。具體步驟如下:下載 MySQL 官方 GPG 密鑰,防止釣魚攻擊。添加 MySQL 倉庫文件:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm更新 yum 倉庫緩存:yum update安裝 MySQL:yum install mysql-server啟動 MySQL 服務:systemctl start mysqld設置開機自啟動

centos安裝mysql centos安裝mysql Apr 14, 2025 pm 08:09 PM

在 CentOS 上安裝 MySQL 涉及以下步驟:添加合適的 MySQL yum 源。執行 yum install mysql-server 命令以安裝 MySQL 服務器。使用 mysql_secure_installation 命令進行安全設置,例如設置 root 用戶密碼。根據需要自定義 MySQL 配置文件。調整 MySQL 參數和優化數據庫以提升性能。

laravel框架安裝方法 laravel框架安裝方法 Apr 18, 2025 pm 12:54 PM

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

See all articles