13 MySQL 字串函式

2021-10-01 05:47:31 字數 4545 閱讀 6328

函式名/說明

應用例項

ascii(s)

返回s字串的第乙個字元的 ascii 碼

select ascii(『hello world』);

- - 即返回 h字元的ascii為:72

concat(s1,…,sn);

字串連線函式;

任何引數為null時,返回 null

select concat(『hello』,『world』);

- - 返回:helloworld

select concat(『hello』, 『world』, null);

- - 返回:null

concat_ws(c, s1,…,sn);

指定c為s1~sn的連線符;

c參為null時, 返回 null

select concat_ws(』-』, 『hello』, 『world』);

- - 返回:hello-world

select concat_ws(null, 『hello』, 『world』);

- - 返回:null

lower(s) 同lcase(s)

將s字串轉換為小寫字母

select lower(『hello world』);

- - 返回: hello world

lcase(s)

將s字串轉換為小寫字母

select lcase(『hello world』);

- - 返回: hello world

upper(s) 同ucase(s)

將s字串轉換為大寫字母

select upper(『hello world』);

- - 返回: hello world

length(s)

返回字串的位元組長度

select length(『hello world』);

- - 返回:11

char_length(s)

返回字串 s 的字元數

select char_length(「mysql」);

- - 返回:5

character_length(s)

返回字串 s 的字元數

select character_length(「mysql」);

- - 返回:5

lpad(s1,len,s2)

字串s1的開始處填充 s2字串,使字串長度 len

select lpad(『abc』, 5, 『xx』);

- - 將字串xx填充到abc字串:xxabc

rpad(s1,len,s2)

s1字串結尾處新增s2字串,使字串的長度 len

select rpad(『abc』,5,『xx』);

- - 將字串 xx 填充到 abc 字串的結尾處:abcxx

ltrim(s)

刪除 字串s左側空格字元

select ltrim(』 hello』);

- - 可刪除多個空格; 返回:hello

rtrim(s)

刪除 字串s右側空格字元

select rtrim('hello ');

- - 可刪除多個空格; 返回:hello

trim(s)

刪除 字串s兩側空格字元

select trim(』 hello world ');

- - 內部空格不影響; 返回:hello world

space(n)

返回 n 個空格

select space(10);

- - 返回 10 個空格

substr(s, start, length)

s字串 start位置擷取長度 length 的子字串

select substr(「mysql」, 2, 3);

- - 返回: ysq

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

s字串,從n位置起擷取 len長度的字串;

若n為負數,則字串尾開始計數;

select substring(『hello world』, 1, 7);

- - 返回:hello w

select substring(『hello world』, -4, 3);

- - 返回:orl

substring_index(s,dmt,num);

返回從s字串的第num個出現的分隔符dmt後的子串:

若num是正數,返回第num個字元左邊的字串;

若num是負數,返回第num個字元右邊的字串

select substring_index(『ab』,』』,1); - - a

select substring_index(『ab』,』』,-1); - - b

select substring_index(substring_index(『abcde』,』』,3),』』,-1);

- - 返回:c

left(s, n)

s字串,擷取左邊n個字元

select left(『hello world』, 5);

- - 返回:hello

right(s, n)

s字串,擷取右邊n個字元

select right(『hello world』, 5);

- - 返回:world

replace(s, from_s, to_s)

把字串s中的 from_s 替換為 to_s

select replace(『hello world』, 『world』, 『sql』);

- - 返回:hello sql

repeat(s,n)

將字串 s 重複 n 次

select repeat(『abc』,3);

- - 將字串 abc重複3次:abcabcabc

insert(s1,x,len,s2)

字串s2 替換 s1,位置x開始,長度為 len字串

select insert(「google」, 1, 6, 「mysql」);

- - 返回:mysqle

reverse(s)

將s字串 反序

select reverse(『abc』);

- - 將字串 abc 的順序反過來

format(x, n)

以四捨五入格式化 x,小數點n位;

若n=0 則返回結果不含小數

select format(34.567, 2); - - 返回字元:34.57

select format(34.5, 2); - - 返回字元:34.50

select format(34.567, 0); - - 返回字元:35

field(s,s1,s2…)

返回第1個s字串,字串列表(s1,s2…)的位置

select field(『c』, 『a』, 『b』, 『c』, 『d』, 『e』);

- - 返回字串 c 在列表值中的位置:3

find_in_set(s1,s2)

返回s2字串中,字串s1匹配的位置

select find_in_set(『c』, 『a』, 『b』, 『c』, 『d』, 『e』);

- - 返回字串 c 在指定字串中的位置

locate(s1,s)

從字串 s 中獲取 s1 的開始位置

select locate(『st』,『myteststring』);

- - 獲取st在字串myteststring 的位置:5

select locate(『b』, 『abc』);

- - 返回字串 abc 中 b 的位置:2

position(s1 in s)

從字串 s 中獲取 s1 的開始位置

select position(『b』 in 『abc』);

- - 返回字串 abc 中 b 的位置:2

strcmp(s1,s2);

比較函式: 若 s1= s2 返回 0;

若 s1>s2 返回 1; 若 s1select strcmp(「hello」, 「world」);

- - 返回:-1

字串函式 (13)

當你需要複製整個字串時,就要使用strcpy 這個函式 如下 include includeint main char b 100 strcpy b,a printf b s,a s b,a return 0 這裡就會將 i like you 複製到 陣列b中,並且把陣列b中原有的字串覆蓋,如果要保...

(1 3)MySQL 基本操作

整理自 慕課網 mysql概述 目錄 1 啟動 關閉mysql服務 2 mysql登入與退出 3 mysql常用命令及語法規範 3.1修改提示符 3.2 常用命令 3.3mysql語句的規範 開啟cmd命令視窗,由於已配置mysql系統環境變數,所以可以在任何目錄下啟動和停止mysql服務。1 啟動...

MySQL學習13 MySQL日誌

日誌 描述重做日誌 redo log 一種物理格式的日誌,記錄的是物理資料頁面的修改的資訊,其redo log是順序寫入redo log file的物理檔案中去的。回滾日誌 undo log 一種邏輯格式的日誌,在執行undo的時候,僅僅是將資料從邏輯上恢復至事務之前的狀態,而不是從物理頁面上操作實...