Mysql字串處理函數詳細介紹、總結

來源:互聯網
上載者:User

 這篇文章主要介紹了Mysql字串處理函數詳細介紹、總結,需要的朋友可以參考下

一、簡明總結ASCII(char)        返回字元的ASCII碼值BIT_LENGTH(str)      返回字串的位元長度CONCAT(s1,s2…,sn)      將s1,s2…,sn串連成字串CONCAT_WS(sep,s1,s2…,sn)  將s1,s2…,sn串連成字串,並用sep字元間隔INSERT(str,x,y,instr)    將字串str從第x位置開始,y個字元長的子串替換為字串instr,返回結果FIND_IN_SET(str,list)   分析逗號分隔的list列表,如果發現str,返回str在list中的位置LCASE(str)或LOWER(str)   返回將字串str中所有字元改變為小寫後的結果LEFT(str,x)        返回字串str中最左邊的x個字元LENGTH(s)         返回字串str中的字元數LTRIM(str)         從字串str中切掉開頭的空格POSITION(substr,str)    返回子串substr在字串str中第一次出現的位置QUOTE(str)         用反斜線轉義str中的單引號 REPEAT(str,srchstr,rplcstr)返回字串str重複x次的結果REVERSE(str)        返回顛倒字串str的結果RIGHT(str,x)        返回字串str中最右邊的x個字元RTRIM(str)         返回字串str尾部的空格STRCMP(s1,s2)       比較字串s1和s2TRIM(str)         去除字串首部和尾部的所有空格UCASE(str)或UPPER(str)   返回將字串str中所有字元轉變為大寫後的結果 二、詳細總結1.ASCII(str)傳回值為字串str 的最左字元的數值,即取得最左字元的ascii碼。假如str為空白字串,則傳回值為 0 。假如str 為NULL,則傳回值為 NULL。 ASCII()用於帶有從 0到255的數值的字元。 2.BIN(N) 傳回值為N的二進位值的字串表示,即轉為二進位。其中 N 為一個longlong (BIGINT) 數字。這等同於 CONV(N,10,2)。假如N 為NULL,則傳回值為 NULL。 3.BIT_LENGTH(str) 傳回值為二進位的字串str 長度。 4.CHAR(N,... [USING charset]) CHAR()將每個參數N理解為一個整數,其傳回值為一個包含這些整數的代碼值所給出的字元的字串。NULL值被省略。即將所有參數轉為字元後串連在一起。 5.CHAR_LENGTH(str) 傳回值為字串str 的長度,長度的單位為字元。 6.CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同義字。 7.COMPRESS(string_to_compress) 壓縮一個字串。 8.CONCAT(str1,str2,...)返回結果為串連參數產生的字串。 9.CONCAT_WS(separator,str1,str2,...) CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一個參數是其它參數的分隔字元。分隔字元的位置放在要串連的兩個字串之間。分隔字元可以是一個字串,也可以是其它參數。如果分隔字元為 NULL,則結果為 NULL。函數會忽略任何分隔字元參數後的 NULL 值。 10.CONV(N,from_base,to_base) 不同數基間轉換數字。傳回值為數位N字串表示,由from_base基轉化為 to_base 基。如有任意一個參數為NULL,則傳回值為 NULL。自變數 N 被理解為一個整數,但是可以被指定為一個整數或字串。最小基數為 2 ,而最大基數則為 36。 11.ELT(N,str1,str2,str3,...) 若N = 1,則傳回值為 str1 ,若N = 2,則傳回值為 str2 ,以此類推。   若N 小於1或大於參數的數目,則傳回值為 NULL 。 12.EXPORT_SET(bits,on,off[,separator[,number_of_bits]]) 傳回值為一個字串,其中對於bits值中的每個位組,可以得到一個 on 字串,而對於每個清零位元位,可以得到一個off 字串。bits 中的位元值按照從右至左的順序接受檢驗 (由低位位元到高位位元)。字串被分隔字串分開(預設為逗號‘,'),按照從左至右的順序被添加到結果中。number_of_bits 會給出被檢驗的二進位位元 (預設為 64)。 13.FIELD(str,str1,str2,str3,...) 傳回值為str1, str2, str3,……列表中的str 指數(位置)。在找不到str 的情況下,傳回值為 0 。如果所有對於FIELD() 的參數均為字串,則所有參數均按照字串進行比較。如果所有的參數均為數字,則按照數字進行比較。否則,參數按照雙倍進行比較。 14.FIND_IN_SET(str,strlist) 假如字串str 在由N 子鏈組成的字串列表strlist 中, 則傳回值的範圍在 1 到 N 之間(即str在strlist中的位置) 。一個字串列表就是一個由一些被‘,'符號分開的自鏈組成的字串。 15.FORMAT(X,D) 將數字X 的格式寫為'#,###,###.##',以四捨五入的方式保留小數點後 D 位, 並將結果以字串的形式返回。若 D 為 0, 則返回結果不帶有小數點,或不含小數部分。 16.HEX(N_or_S) 如果N_OR_S 是一個數字,則返回一個 十六進位值 N 的字串表示,在這裡,N 是一個longlong (BIGINT)數。這相當於 CONV(N,10,16)。 17.INSERT(str,pos,len,newstr) (str中的字元被newstr替換)返回字串 str, 其子字串起始於 pos 位置和長期被字串 newstr取代的len 字元。 如果pos 超過字串長度,則傳回值為原始字串。 假如len的長度大於其它字串的長度,則從位置pos開始替換。若任何一個參數為null,則傳回值為NULL。 18.INSTR(str,substr) 返回字串 str 中子字串的第一個出現位置。這和LOCATE()的雙參數形式相同,除非參數的順序被顛倒。 19.LCASE(str) LCASE() 是 LOWER()的同義字。 20.LEFT(str,len) 返回從字串str 開始的len 最左字元。 21.LENGTH(str) 傳回值為字串str 的長度,單位為位元組。一個多位元組字元算作多位元組。這意味著 對於一個包含5個2位元組字元的字串, LENGTH() 的傳回值為 10, 而 CHAR_LENGTH()的傳回值則為5。 22.LOAD_FILE(file_name) (不錯)讀取檔案並將這一檔案按照字串的格式返回。 例:  代碼如下:mysql> UPDATE tbl_name           SET blob_column=LOAD_FILE('/tmp/picture')           WHERE id=1; 23.LOCATE(substr,str) , LOCATE(substr,str,pos) 第一個文法返回字串 str中子字串substr的第一個出現位置。第二個文法返回字串 str中子字串substr的第一個出現位置, 起始位置在pos。如若substr 不在str中,則傳回值為0。 24.LOWER(str) 返回字串 str 以及所有根據最新的字元集映射表變為小寫字母的字元 (預設為 cp1252 Latin1)。 25.LPAD(str,len,padstr) 返回字串 str, 其左邊由字串padstr 填補到len 字元長度。假如str 的長度大於len, 則傳回值被縮短至 len 字元。即在str前面添加長度為len的padstr. 26.LTRIM(str) 返回字串 str ,其引導空白字元被刪除。 27.MAKE_SET(bits,str1,str2,...) 返回一個設定值 (一個包含被‘,'號分開的字字串的字串) ,由在bits 組中具有相應的位元的字串組成。str1 對應位元 0, str2 對應位元1,以此類推。str1, str2, ...中的 NULL值不會被添加到結果中。 28.MID(str,pos,len) MID(str,pos,len) 是 SUBSTRING(str,pos,len)的同義字。 29.OCT(N) 返回一個 N的八進位值的字串表示,其中 N 是一個longlong (BIGINT)數。這等同於CONV(N,10,8)。若N 為 NULL ,則傳回值為NULL。 30.OCTET_LENGTH(str) OCTET_LENGTH() 是 LENGTH()的同義字。 31.ORD(str) 若字串str 的最左字元是一個多位元組字元,則返回該字元的代碼, 假如最左字元不是一個多位元組字元,那麼 ORD()和函數ASCII()返回相同的值。 32.POSITION(substr IN str) POSITION(substr IN str)是 LOCATE(substr,str)同義字。 33.QUOTE(str)引證一個字串,由此產生一個在SQL語句中可用作完全轉義資料值的結果。 34.REPEAT(str,count) 返回一個由重複的字串str 組成的字串,字串str的數目等於count 。 若 count <= 0,則返回一個Null 字元串。若str 或 count 為 NULL,則返回 NULL 。 35.REPLACE(str,from_str,to_str)返回字串str 以及所有被字串to_str替代的字串from_str 。 36.REVERSE(str) 返回字串 str ,順序和字元順序相反。 37.RIGHT(str,len) 從字串str 開始,返回最右len 字元。 38.RPAD(str,len,padstr)返回字串str, 其右邊被字串 padstr填補至len 字元長度。假如字串str 的長度大於 len,則傳回值被縮短到與 len 字元相同長度。 39.RTRIM(str) 返回字串 str ,結尾空白字元被刪去。 40.SOUNDEX(str) 從str返回一個soundex字串。 41.SPACE(N) 返回一個由N 間隔符號組成的字串。 42.SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len) SUBSTR()是 SUBSTRING()的同義字。不帶有len 參數的格式從字串str返回一個子字串,起始於位置 pos。帶有len參數的格式從字串str返回一個長度同len字元相同的子字串,起始於位置 pos。 使用 FROM的格式為標準 SQL 文法。也可能對pos使用一個負值。假若這樣,則子字串的位置起始於字串結尾的pos 字元,而不是字串的開頭位置。 43.SUBSTRING_INDEX(str,delim,count) 在定界符 delim 以及count 出現前,從字串str返回自字串。若count為正值,則返回最終定界符(從左邊開始)左邊的一切內容。若count為負值,則返回定界符(從右邊開始)右邊的一切內容。 44.TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str) 返回字串 str , 其中所有remstr 首碼和/或尾碼都已被刪除。若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設為BOTH 。 remstr 為可選項,在未指定情況下,可刪除空格。 45.UCASE(str) UCASE()是UPPER()的同義字。 46.UNCOMPRESS(string_to_uncompress) 對經COMPRESS()函數壓縮後的字串進行解壓縮。 47.UNCOMPRESSED_LENGTH(compressed_string) 返回壓縮字串壓縮前的長度。 48.UNHEX(str) 執行從HEX(str)的反向操作。就是說,它將參數中的每一對十六進位數字理解為一個數字,並將其轉化為該數字代表的字元。結果字元以二進位字串的形式返回。 49.UPPER(str) 返回字串str, 以及根據最新字元集映射轉化為大寫字母的字元 (預設為cp1252 Latin1). 50.模式比對:萬用字元%      -------        匹配任何數目的字元,甚至包括零字元_      -------        只能匹配一種字元 轉義用‘/' 51.STRCMP(expr1,expr2) 若所有的字串均相同,則返回STRCMP(),若根據當前分類次序,第一個參數小於第二個,則返回 -1,其它情況返回 1 。   附:小提示MySQL必要時自動變換數字為字串,並且反過來也如此:mysql> SELECT 1+"1"; -> 2mysql> SELECT CONCAT(2,' test'); -> '2 test'如果你想要明確地變換一個數字到一個字串,把它作為參數傳遞到CONCAT()。如果字串函數提供一個二進位字串作為參數,結果字串也是一個二進位字串。被變換到一個字串的數字被當作是一個二進位字串。這僅影響比較。mysql 連接字串與SQL不同  以前用SQL Server 連接字串是用“+”,現在資料庫用mysql,寫個累加兩個欄位值SQL語句居然不支援"+",鬱悶了半天在網上查下,才知道mysql裡的+是數字相加的操作,連接字串是CONCAT函數例:mysql> select CONCAT('My', '_', '2001');-> 'My_2001' 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.