MySQL函式 字串函式

2021-08-16 03:37:37 字數 3361 閱讀 8080

字串函式是mysql中最常用的一類函式,字串函式主要用於處理表中的字串。

1、char_length(s) 返回字串s的字元數

select char_length('你好123') -- 5

2、length(s) 返回字串s的長度

select length('你好123') -- 9

3、concat(s1,s2,...) 將字串s1,s2等多個字串合併為乙個字串

select concat('12','34') -- 1234

4、concat_ws(x,s1,s2,...) 同concat(s1,s2,...)函式,但是每個字串之間要加上x

select concat_ws('@','12','34','56') -- 12@34@56

5、insert(s1,x,len,s2) 將字串s2替換s1的x位置開始長度為len的字串

select insert('12345',1,3,'abc') -- abc45

6、upper(s),ucaase(s) 將字串s的所有字母變成大寫字母

select upper('abc') -- abc

7、lower(s),lcase(s) 將字串s的所有字母變成小寫字母

select lower('abc') -- abc

8、left(s,n) 返回字串s的前n個字元

select left('abcde',2) -- ab

9、right(s,n) 返回字串s的後n個字元

select right('abcde',2) -- de

10、lpad(s1,len,s2) 字串s2來填充s1的開始處,使字串長度達到len

select lpad('abc',5,'xx') -- xxabc

11、rpad(s1,len,s2) 字串s2來填充s1的結尾處,使字串的長度達到len

select rpad('abc',5,'xx') -- abcxx

12、ltrim(s) 去掉字串s開始處的空格

13、rtrim(s) 去掉字串s結尾處的空格

14、trim(s) 去掉字串s開始和結尾處的空格

15、trim(s1 from s) 去掉字串s中開始處和結尾處的字串s1

select trim('@' from '@@abc@@') -- abc

16、repeat(s,n) 將字串s重複n次

select repeat('ab',3) -- ababab

17、space(n) 返回n個空格

18、replace(s,s1,s2) 將字串s2替代字串s中的字串s1

select replace('abc','a','x') --xbc

19、strcmp(s1,s2) 比較字串s1和s2

select strcmp('ad','ac'); -- 1

select strcmp('ab','ac'); -- -1

select strcmp('ab','ab'); -- 0

20、substring(s,n,len) 獲取從字串s中的第n個位置開始長度為len的字串

select substring('abcdef',2,3); -- bcd

21、mid(s,n,len) 同substring(s,n,len)

22、locate(s1,s),position(s1 in s) 從字串s中獲取s1的開始位置

select locate('cd','abcdefg'); -- 3

select locate('b', 'abc') -- 2

23、instr(s,s1) 從字串s中獲取s1的開始位置

select instr('abc','b') -- 2

select instr('abc','d') -- 0

24、reverse(s) 將字串s的順序反過來

select reverse('abc') -- cba

25、elt(n,s1,s2,...) 返回第n個字串

select elt(2,'a','b','c') -- b

26、export_set(x,s1,s2)

返回乙個字串,在這裡對於在「bits」中設定每一位,你得到乙個「on」字串,

並且對於每個復位(reset)的位,你得到乙個 「off」字串。

每個字串用「separator」分隔(預設「,」),並且只有「bits」的「number_of_bits」 (預設64)位被使用。

select export_set(5,'y','n',',',4) -- y,n,y,n

27、field(s,s1,s2...) 返回第乙個與字串s匹配的字串位置

select field('c','a','b','c') -- 3

28、find_in_set(s1,s2) 返回在字串s2中與s1匹配的字串的位置

select find_in_set('hi','hihi,hey,hi,bas')

字串列表是乙個由多個逗號『,』分開的字串組成的列表。如果s1不在s2或s2為空字串,則返回值為0。如果任意乙個引數為null,則返回值為null。

29、make_set(x,s1,s2) 返回乙個集合 (包含由「,」 字元分隔的子串組成的乙個字串),由相應的位在bits集合中的的字串組成。

select make_set(1|4,'a','b','c'); -- a,c  1對應0001,4對應0100,異或操作為0101,返回從左端開始第一和第三個字串組成的字串

-- 異或:如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0

30、substring_index 返回從字串str的第count個出現的分隔符delim之後的子串。

如果count是正數,返回第count個字元左邊的字串。

如果count是負數,返回第(count的絕對值(從右邊數))個字元右邊的字串。

select substring_index('a*b','*',1) -- a

select substring_index('a*b','*',-1) -- b

select substring_index(substring_index('a*b*c*d*e','*',3),'*',-1) -- c

--select substring_index('a*b*c*d*e','*',3) -- a*b*c

31、load_file(file_name) 讀入檔案並且作為乙個字串返回檔案內容。

檔案必須在伺服器上,你必須指定到檔案的完整路徑名,而且你必須有file許可權。

檔案必須所有內容都是可讀的並且小於max_allowed_packet。 如果檔案不存在或由於上面原因之一不能被讀出,函式返回null。

mysql常用函式 字串處理函式

mysql常用函式 字串處理函式 函式名 ascii str 作用 返回字串str的最左面字元的ascii 值。如果str是空字串,返回0。如果str是null,返回null。函式名 ord str 作用 如果字串str最左面字元是乙個多位元組字元,通過以格式 first byte ascii co...

Oracle函式 字串函式

1.1 計算字串長度的函式 length str 1.2 合併字串函式concat s1,s2 concat s1,s2 返回結果為連線引數產生的字串 1.3 字串搜尋函式instr s,x instr s,x 返回x字元在字串s的位置 1.4 字母大小寫轉換函式lower str 和upper s...

mysql 字串函式

注意以下 sql 均在 putty 下執行,所以對中文的支援不好 當輸入的中文字符集是 big5 而要求儲存的是 utf8,而putty 只支援簡體中文 或者其他特殊情況時.select menu name cn from menu item where menu id 23 menu name c...