1. 程式人生 > >Mysql字串的處理函式

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和s2
TRIM(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,則返回一個空字串。若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'

相關推薦

MySQL字串處理函式的幾種常見用法

1.字串大小寫轉化: (1).將tbl_student表的user_name欄位所有小寫字母,替換為大寫:      update tbl_student set user_name=UPPER(user_name); (2).將tbl_student表的user_name

mysql 字串處理函式 擷取字串

使用MySQL,我們很多時候都會出現需要擷取字串的情況,所以關於字串的擷取的方式有必要記錄下去。 MySQL擷取字串的函式有: left(str, length):從左邊開始擷取,length是擷取的長度。 right(str,length):同上,不

Mysql常見字串處理函式

ORD(str) 如果字串str最左面字元是一個多位元組字元,通過以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字元的ASCII程式碼值來返回多位元組字元程式碼。如果最左面的字

(C/C++學習)14.C語言字串處理函式(二)

說明:上節著重解釋了字串處理的庫函式處理,這節將針對一些常用的需求,進行非庫函式的處理。 一.去除某一個字串中的某個字元 1.去除字串右邊的空格 1 void trimStrRightSpace(char * str) 2 { 3 while(*str) 4 s

14. C語言 -- 字串處理函式

本部落格主要內容為 “小甲魚” 視訊課程《帶你學C帶你飛》【第一季】 學習筆記,文章的主題內容均來自該課程,在這裡僅作學習交流。在文章中可能出現一些錯誤或者不準確的地方,如發現請積極指出,十分感謝。 也歡迎大家一起討論交流,如果你覺得這篇文章對你有所幫助,記得評論、點贊哦 ~(。

常用的c語言字串處理函式

1.獲取一個字串 char *p = fgets(buf, size, stdin);   2.字串查詢     ret = strstr(cmd, "test");     if(ret != NULL)    

C++字串處理函式

C++字串處理函式 轉載自c/c++字串處理大集合 C++: <string> string str; 1. 字串長度 len = str.length(); len = str.size(); 2. 字串比較 可

深入理解字串處理函式 strlen() strcpy() strcat() strcmp()

在linux C 程式設計中,我們經常遇到字串的處理,最多的就是字串的長度、拷貝字串、比較字串等;當然現在的C庫中為我們提供了很多字串處理函式。熟練的運用這些函式,可以減少程式設計工作量,這裡介紹幾個常用的字串函式,並編寫一些程式,如果沒有這些庫函式,我們將如何實現其功能; 1.求字串長度函式 

php自定義函式及內部函式----字串處理函式

一、統計字串 (1)strlen() 統計字串長度 函式返回值為整形,表示字串長度。若返回值為0,表示該字串為空。該函式對待一個UTF8的中文字元,處理為3個位元組長度。 echo strlen("xiaolin!");// 輸出:8 echo strlen("小林!"); // 輸出:7

C語言字元和字串處理函式(二)strchr,strpbrk,strstr

查詢字元或者字串 查詢一個字元:和和和strchr()。 函式返回一個指向STR中CH首次出現的位置,當沒有在STR中找CH就報道檢視NULL。 查詢任意字元:strpbrk()  函式返回一個指標,它指向字串STR2中任意字元在字串STR1首次出現的位置,如果不存在返

R語言字串處理函式

R筆記——基礎 主要把學習工作中遇到的一些基礎知識記下來,方便檢視。 tryCatch() result <- tryCatch({ }, warning = function(w){ }, error = function(e){

MySQL資料處理函式

使用函式的話要注意寫清程式碼註釋,因為MySQL的程式碼移植性沒有SQL高。 總結 處理文字 處理數值資料 處理日期和時間值 返回特殊資訊,如使用者登入、版本檢查等系統函式 1. 處理文字 1.1 變小寫: SELECT Lower('HELLO')

Mysql日期處理函式

mysql日期欄位怎麼加1天: update 表名 set 日期欄位=date_add(日期欄位,interval 1 day); 解決當月1號前一天,及月末轉月日期問題 select DATE_ADD(CURDATE(), INTERVAL 22 HOUR)  當前日

sql語句字串處理函式

函式 database() 查詢當前所使用的資料庫名 user() 或 current_user() 查詢當前使用者 version() 或 @@version 檢視當前資料庫的版本 文字處理函式 eg: mysql> SELECT LEFT('

字串處理函式總結

推薦連結:STL手冊,裡面有你想知道的所有函式和用法,強烈建議收藏這個網址! 下面整理了一些<string>中的函式和用法。 1. strcpy  功  能: 拷貝一個字串到另一個  用  法: char *stpcpy(char *destin, char

mysql字串處理技巧

select  substring(         REPLACE (             REPLACE (                  concat(params['url'],'/'),                 "https://",                 ""      

C語言—字串處理函式

1、puts(字串陣列) ,gets(字串陣列) 2、strcat(字串陣列1,字串陣列2) 把字串陣列2接到字串陣列1中。 3、strcpy(字串陣列1,字串陣列2) 把字串陣列2複製到字串陣列1中。 strncpy(字串陣列1,字串陣列2,n),將字串2中前n個

字串處理函式

/** ***************************************************************************************** * * @Name : 浮點型轉字元 * @Brief

C/C++中常用的字串處理函式

一、            字元處理函式 1.        字元處理函式:<ctype.

幾個常見字串處理函式的實現原理

字串是一種常見的資料結構,對字串的處理又可以十分靈活,所以在實際開發,尤其是非數值處理中,字串的應用非常廣泛。雖然很多字串操作都封裝在了函式庫裡,應用程式可以直接通過呼叫庫函式來實現字串處理,然而對於開發者而言,若能瞭解其底層實現原理,對於應用程式設計而言還是大有裨益的。