MySQL函式 其他函式

2021-08-16 03:59:16 字數 1565 閱讀 4026

1、格式化函式format(x,n)

format(x,n)函式可以將數字x進行格式化,將x保留到小數點後n位。

select format(3.1415926,3) -- 3.142 

2、不同進製的數字進行轉換

•ascii(s) 返回字串s的第乙個字元的ascii碼;

•bin(x) 返回x的二進位制編碼;

•hex(x) 返回x的十六進製制編碼;

•oct(x) 返回x的八進位制編碼;

•conv(x,f1,f2) 返回f1進製數變成f2進製數;

3、ip位址與數字相互轉換的函式

•inet_aton(ip)函式可以將ip位址轉換為數字表示;ip值需要加上引號;

•inet_ntoa(n)函式可以將數字n轉換成ip形式。

select inet_aton('192.168.0.1') -- 3232235521

select inet_ntoa(3232235521) -- 192.168.0.1 

4、加鎖函式和解鎖函式

• get_lock(name,time)函式定義乙個名稱為name、持續時間長度為time秒的鎖。如果鎖定成功,則返回1;如果嘗試超時,則返回0;如果遇到錯誤,返回null。

• release_lock(name)函式解除名稱為name的鎖。如果解鎖成功,則返回1;如果嘗試超時,返回0了;如果解鎖失敗,返回null;

• is_free_lock(name)函式判斷是否已使用名為name的鎖定。如果使用,返回0,否則,返回1;

select get_lock('mysql',10) -- 1    (持續10秒)

select is_free_lock('mysql') -- 1    

select release_lock('mysql') -- 1 

5、重複執行指定操作的函式

benchmark(count,expr)函式將表示式expr重複執行count次,然後返回執行時間。該函式可以用來判斷mysql處理表示式的速度。

select benchmark(10000,now()) -- 0    返回系統時間1萬 

select benchmark(100000000,now()) -- 0 ^_^^-^^_^

6、改變字符集的函式

convert(s using cs)函式將字串s的字符集變成cs。

select charset('abc') -- utf-8    

select charset(convert('abc' using gbk)) -- gbk 

7、轉換資料型別

•cast(x as type)

•convert(x,type)

這兩個函式只對binary、char、date、datetime、time、signed integer、unsigned integer。

select cast('123' as unsigned integer) + 1 -- 124

select '123' + 1 -- 124 其實mysql能預設轉換

select cast(now() as date) -- 2018-03-05

Mysql 其他函式

mysql 中的數值函式 abs x 返回x的絕對值 ceil x 返回大於x的最新整數值 floor x 返回小於x的最小整數值 mod x,y 返回x對y取餘的值 rand 返回0 1間的隨機數 round x,y 返回引數x的四捨五入值,保留y位小數 truncate x,y 返回引數x截斷為...

MySQL系統資訊函式,其他函式

系統資訊函式 其他函式 鏈結 數學函式,字串函式 日期和時間函式,條件判斷函式 函式功能 version 返回mysql版本 connection id 返回mysql伺服器當前連線的次數,每個連線都有各自唯一的id show full processlist 顯示有哪有執行緒在執行,可以顯示當前所...

MySql常用函式(流程函式和其他)

流程函式 函式 功能 1 if value,t f 如果value是真,返回t,否則返回f eg select userid,if salary 2000,high low from salary 2 ifnull value1,value2 如果value1不為空返回value1,否則返回valu...