MySQL数学函数

来源:互联网 发布:php 防止ddos攻击 编辑:程序博客网 时间:2024/06/05 07:02

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)    解密函数

 

原创粉丝点击