MySQL函式操作(1)-常用字串函式例項

雖然每種資料庫軟體都支援SQL語句,但是每種資料庫卻擁有各自所支援的函式。如果想使用資料庫軟體,除了需要會使用SQL語句外,還需要掌握函式。MySQL軟體中常用的函式包含字串函式、數值函式、日期函式和系統資訊函式。

1、使用字串函式

(1)合併字串函式concat()和concat_ws(),透過這兩個函式,將傳出的引數連結成為一個字串。

例項1:concat()函式使用:將字串a、b、c連結起來。

MySQL函式操作(1)-常用字串函式例項

concat()將字串也null合併時,結果為null。

例項2:concat_ws()函式使用:用‘-’將字串b、c連結起來。

MySQL函式操作(1)-常用字串函式例項

連線符出現null時,結果為null。

(2)比較字串大小函式strcmp(),比較所傳入的字串物件。

MySQL函式操作(1)-常用字串函式例項

執行結果顯示,由於字串‘abc’小於‘abd’,所以返回結果為 -1;由於字串‘abc’等於‘abc’,所以返回結果為 0;由於字串‘abc’小於‘abb’,所以返回結果為 1。

(3)獲取字串長度函式length()和字串函式char_length()

例項3:length()函式獲取所傳入引數的長度。

MySQL函式操作(1)-常用字串函式例項

由於‘abcde’是英文,每個字元佔1個位元組,而字串‘字串長度’是中文,所以每個字元佔2個位元組。

例項4:char_length()函式獲取字串長度。

MySQL函式操作(1)-常用字串函式例項

這樣就很清晰了,char_length()函式,傳入的不管是中文還是英文,每個字元都佔1個位元組。

(4)字母大小寫轉換函式upper()和函式lower();

例項5:upper()函式和ucase()函式轉換字元大小寫,執行結果如下圖所示:

MySQL函式操作(1)-常用字串函式例項

例項6:相反,既然有小寫轉大寫,那就有大寫轉小寫,MySQL函式lower()和函式lcase()實現將大寫轉為小寫,執行結果如下:

MySQL函式操作(1)-常用字串函式例項

(5)查詢字串函式:

在MySQL中,提供了豐富的函式去查詢字串的位置,分別為FIND_IN_SET()函式、FIELD()函式、LOCATE()函式、POSITION()函式和INSTR()函式,同時還提供了查詢指定位置的字串函式ELT()。

1)FIND_IN_SET(str,strlist)函式,查詢欄位(strlist)中包含(str)的結果,返回結果為null或記錄。

2)FIELD(str,str1,str2,str3,。。。)函式,返回 str 在 str1, str2, str3, 。。。 列表中的索引(位置從1開始)。如果str沒有找到 返回值為0。

3)LOCATE()函式,LOCATE(substr,str), LOCATE(substr,str,pos)。第一個語法返回substr在字串str 的第一個出現的位置。第二個語法返回子符串 substr 在字串str,從pos處開始的第一次出現的位置。如果substr 不在str 中,則返回值為0 。

4)POSITION(substr IN str)函式,返回子串 substr 在字串 str 中第一次出現的位置。如果子串 substr 在 str 中不存在,返回值為 0。

5)INSTR(欄位名, 字串)函式,這個函式返回字串在某一個欄位的內容中的位置, 沒有找到字串返回0,否則返回位置(從1開始)。

6)ELT(N,str1,str2,str3,。。。)函式,如果N =1返回str1,如果N= 2返回str2,等等。

(6)從現有的字串中提取子字串:

1)LEFT(str,num)從左邊、RIGHT(str,num)從右邊提取子字串,結果如下:

MySQL函式操作(1)-常用字串函式例項

2)SUBSTRING()和MID()擷取指定位置和長度子字串,效果如下:

MySQL函式操作(1)-常用字串函式例項

(7)去除字串的首尾空格。LTRIM(str) 去除左空格函式,RTRIM(str) 去除右空格函式。

MySQL函式操作(1)-常用字串函式例項

透過獲取長度來檢視是否去除空格。

trim函式可以過濾指定的字串:

完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

簡化格式:TRIM([remstr FROM] str)。

(8)replace()函式。mysql中使用replace替換某欄位的部分內容的方法。

1)replace intoreplace into table (id,name) values(‘1’,‘aa’),(‘2’,‘bb’)

此語句的作用是向表table中插入兩條記錄。

2)replace(object, search,replace)

把object中出現search的全部替換為replaceselect replace(‘www。163。com’,‘w’,‘Ww’)——->WwW wWw。163。com

例:把表table中的name欄位中的 aa替換為bbupdate table set name=replace(name,‘aa’,‘bb’)