MySQL數學函式

2021-08-10 11:28:01 字數 3778 閱讀 5415

1.取餘函式

mod(12,5)=2

2.四捨五入

round(1.354,1)=1.4

truncate(1.354,1)=1.3

3.十六進製制轉換函式

hex(『love』)=6c6f7665

unhex(6c6f7665)='love'

4.字元長度

char_length('date')=4

5.連線函式

concat_ws代表concat with separator,是concat()函式的特殊形式

concat_ws('-','1st','2nd','3rd')='1st-2nd-3rd'

concat_ws('-','1st',null,'3rd')='1st-3rd'

6.替換字串的函式

insert(s1,x,len,s2)

insert(s1,x,len,s2)函式跟sqlserver裡的stuff()函式的功能是一樣的

7.填充字串的函式

lpad(s1,len,s2)

rpad(s1,len,s2)

lpad('hello',4,'??')='hell'

lpad('hello',10,'??')='?????hello'

8.刪除空格的函式

trim(s)

mysql這裡比sqlserver方便

sqlserver要刪除兩邊的空格, select ltrim(rtrim(' hello ')) 

刪除指定字串的函式trim(s1 from s)

select trim('xy' from 'xyxboxyokxxyxy')=xboxyokx

9.重複生成字串的函式

repeat(s,n)

這個函式跟sqlserver裡的replicate()函式是一樣的,引數個數都是一樣的

10.比較字串大小的函式

strcmp(s1,s2)

strcmp('t','t2')=-1

strcmp('t2','t')=1

strcmp('t','t')=0

11.匹配子串開始位置的函式

locate(str1,str)、position(str1 in str)、instr(str,str1)3個函式作用相同,返回子字串str1在字串str中的開始位置

locate('ball','football')=5

position('ball' in 'football')=5

instr('football','ball')=5

12.返回指定位置的字串的函式

elt(n,字串1,字串2,字串3,...,),若n=1,則返回值為字串1,若n=2,則返回值為字串2,以此類推。

若n小於1或大於引數的數目,則返回值為null

elt(3,'1st','2nd','3rd')='3rd'

elt(3,'net','os')=null

13.返回指定字串位置的函式

field(s,s1,s2,...)

field(s,s1,s2,...)返回字串s在列表s1,s2,......中第一次出現的位置,在找不到s的情況下,返回值為0;如果s為null,則返回值為0.

field('hi','hihi','hey','hi','bas')=3

field('hi','hihi','lo','hilo','foo')=0

14.返回子串位置的函式find_in_set(s1,s2)

find_in_set(s1,s2)返回字串s1在字串列表s2中出現的位置,字串列表是乙個由多個逗號

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

這個函式在第乙個引數包含乙個逗號『,』時將無法正常執行。

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

15.選取字串的函式make_set(x,s1,s2,...)

make_set(x,s1,s2,...)返回由x的二進位制數指定的相應位的字串組成的字串,s1對應位元1,s2對應位元01以此類推。

s1,s2...中的null值不會被新增到結果中。

make_set(1,'a','b','c')='a'

make_set(1|4,'hello','nice','world')='helloworld'

16.日期時間函式

utc_date()      utc日期的函式

utc_time()     utc時間的函式

monthname('2013-8-2')=『august』    獲取月份的函式

quarter('11-04-01')=2   指定日期對應的季度

minute('11-02-03 10:10:06')=10

second('10:23:10')=10

dayname('2009-3-2')=2009   返回年份

extract(year from '2013-2-3')=2013    返回年份

time_to_sec('23:22:00')=84120    

sec_to_time('84120')

17.條件判斷函式

if(expr,v1,v2)函式

if(expr,v1,v2)如果表示式expr是true(expr<>0 and expr<>null),則if()的返回值為v1;否則返回值為v2

ifnull(v1,v2)函式

ifnull(v1,v2)假如v1不為null,則ifnull(v1,v2)的返回值為v1;否則其返回值為v2

18.加密和解密函式

password(str)

md5(str)

encode(str,pswd_str)

decode(crypt_str,pswd_str)    解密函式

MySQL函式 數學函式

數學函式主要用於處理數字,包括整型 浮點數等。函式 作用 1 abs x 返回x的絕對值 select abs 1 返回1 2 ceil x ceiling x 返回大於或等於x的最小整數 select ceil 1.5 返回2 3 floor x 返回小於或等於x的最大整數 select floo...

mysql ln函式 MySQL 數學函式

所有的數學函式在發生錯誤的情況下,均返回null。1 abs x 返回x的絕對值 2 sign x 以 1 0或1方式返回引數的符號,它取決於引數x是負數 0 或正數。3 mod n,m 取模 就如 c 中的 操作符 返回n被m除后的餘數 4 floor x 返回不大於x的最大整數值 5 ceili...

Mysql數學函式解析

所有的數學函式在乙個出錯的情況下返回null。單目減。改變引數的符號。mysql select 2 注意,如果這個操作符與乙個bigint使用,返回值是乙個bigint!這意味著你應該避免在整數上使用 那可能有值 2 63!abs x 返回x的絕對值。mysql select abs 2 2 mys...