sqlerver 字符串转整型_我的MYSQL学习心得(六)

这篇博客主要介绍了MYSQL中的数学、字符串、日期时间等函数,对比了与SQLSERVER的区别,包括MOD()、TRUNCATE()、CHAR_LENGTH()、CONCAT_WS()、TRIM()、STRCMP()、LOCATE()、FIND_IN_SET()、EXTRACT()、IFNULL()、CASE、BENCHMARK()等,并提到了字符集转换和数据类型转换函数。
摘要由CSDN通过智能技术生成

我的MYSQL学习心得(六)

我的MYSQL学习心得(一)

我的MYSQL学习心得(二)

我的MYSQL学习心得(三)

我的MYSQL学习心得(四)

我的MYSQL学习心得(五)

这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数

数学函数

1、求余函数MOD(X,Y)

MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数SELECT MOD(31,8)

2、四舍五入函数TRUNCATE(X,Y)

TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。

若y设为负数,则截去(归零)x小数点左边起第y位开始后面所有低位的值。SELECT TRUNCATE(1.32,1)

TRUNCATE(1.32,1)保留小数点后一位数字,返回值为1.3

TIPS:ROUND(X,Y)函数在截取值的时候会四舍五入,而TRUNCATE(x,y)直接截取值,并不进行四舍五入

字符串函数

计算字符串字符数的函数

1、CHAR_LENGTH(STR)返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符SELECT CHAR_LENGTH('DATE')

2、合并字符串函数CONCAT_WS(x,s1,s2,......)

CONCAT_WS(x,s1,s2,......),CONCAT_WS代表CONCAT with Separator,是CONCAT()函数的特殊形式。

第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是

其他参数。如果分隔符为NULL,则结果为NULL。函数会忽略任何分隔符参数后的NULL值。SELECT CONCAT_WS('-','1st','2nd','3rd'),CONCAT_WS('-','1st',NULL,'3rd')

CONCAT_WS('-','1st','2nd','3rd')使用分隔符‘-’将3个字符串连接成一个字符串,结果为“1st-2nd-3rd”;

CONCAT_WS('-','1st',NULL,'3rd')因为第二个值为NULL,所以第二个值不会出现在结果里

3、替换字符串的函数INSERT(S1,X,LEN,S2)

INSERT(S1,X,LEN,S2)函数跟SQLSERVER里的STUFF()函数的功能是一样的,这里不作介绍了

填充字符串的函数LPAD(S1,LEN,S2)和RPAD(S1,LEN,S2)

4、LPAD(S1,LEN,S2)返回字符串s1,其左边由字符串s2填补到len字符串长度。假如s1的长度大于len,则返回值被缩短至len字符。

LPAD()函数和RPAD()函数功能跟SQLSERVER里的 REPLACE()相似,不过功能更加强大SELECT LPAD('hello',4,'??'),LPAD('hello',10,'??')

字符串“hello”长度大于4,不需要填充,因此LPAD('hello',4,'??')只返回被缩短的长度为4的子串

字符串“hello”长度小于10,LPAD('hello',10,'??')返回结果为“?????hello”,左侧填充“?”,长度为10

5、RPAD(S1,LEN,S2)返回字符串s1,其右边被字符串s2填补至len字符长度。假如字符串s1的长度大于len,则返回值被缩短到len字符长度SELECT RPAD('hello',4,'?')

字符串“hello”长度大于4,不需要填充,因此RPAD('hello',4,'?')只返回被缩短的长度为4的子串"hell"

删除空格的函数TRIM(S)

6、TRIM(S)删除字符串s两侧的空格

MYSQL这里比SQLSERVER方便,SQLSERVER要删除两边的空格,需要使用: SELECTLTRIM(RTRIM('hello'))SELECT TRIM(' book ')

删除指定字符串的函数TRIM(S1 FROM S)

7、TRIM(S1 FROM S)删除字符串s中两端所有的子字符串s1。s1为可选项,在未指定情况下,删除空格SELECT TRIM('xy' FROM 'xyxboxyokxxyxy')

'xyxboxyokxxyxy'两端的重复字符串“xy”,而中间的“xy”并不删除,结果为xboxyokx

重复生成字符串的函数REPEAT(S,N)

这个函数跟SQLSERVER里的REPLICATE()函数是一样的,参数个数都是一样的,这里不作介绍了

8、比较字符串大小的函数STRCMP(S1,S2)

STRCMP(S1,S2)若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1SELECT STRCMP('txt','txt2') ,STRCMP('txt2','txt'),STRCMP('txt','txt')

“txt”小于“txt2”,因此 STRCMP('txt','txt2') 返回结果为-1

STRCMP('txt2','txt')返回结果为1

“txt”与“txt”相等,因此STRCMP('txt','txt')返回结果为0

匹配子串开始位置的函数

9、LOCATE(STR1,STR)、POSITION(STR1 IN STR)、INSTR(STR,STR1)3个函数作用相同,返回子字符串str1在字符串str中的开始位置

这三个函数跟SQLSERVER里的CHARINDEX()函数功能类似SELECT LOCATE('

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值