MySql-函数

ISNULL、  IFNULL(expr1,expr2)、 NULLIF(expr1,expr2)区别

  • ISNULL(expr): 判断exper是否为空,是则返回1,否则返回0
  • IFNULL(expr1,expr2):判断exper1是否为空,是则用exper2代替
  • NULLIF(expr1,expr2):如果expr1= expr2 成立,那么返回值为NULL,否则返回值为 expr1

 

CAST()和CONVERT()的区别

   二者都可以用来获取一个类型的值,转化为另一个类型的值

  • CAST(expr AS type):
  • CONVERT(expr,type)

exper可以转换的类型(type)是有限的,为以下几种。

 

CHAR[(N)]  字符型,可带参数
DATE 日期型
DATETIME  日期时间型
DECIMAL   float型
SIGNED   int整数
TIME   时间型
UNSIGNED 无符号整数

备注:

column_name DECIMAL(P,D);
在上面的语法中:

P是表示有效数字数的精度。 P范围为1〜65。
D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于(<=)P。

 

MySql的函数截取:

     LEFT()、RIGHT()、SUBSTRING()、SUBSTRING_INDEX()   SUBSTR为substring的近义词

  • LEFT(str,len):str被截取字符串,截取长度。str从左边被截取len个长度。SELECT LEFT('www.baidu.com',5)-->www.b
  • RIGHT(str,len):str被截取字符串,截取长度。str从右边被截取len个长度。SELECT RIGHT('www.baidu.com',5)-->u.com
  • SUBSTR(str,pos)/SUBSTRING(str,pos):从str第pos个字符开始截取(pos为负数,从倒数第|pos|开始截取)
  • SUBSTR(str,pos,len) /SUBSTRING(str FROM pos FOR len):从str第pos个字符开始截取len个字符(pos为负数,从倒数第|pos|开始截取len个字符
  • SUBSTRING_INDEX(str,delim,count):在str的第count个delim字符之前(count为整数)后/倒数第count(count为负数)后的字符。如果delim不存在,返回str。

SELECT SUBSTRING('www.baidu.com',5)  ===>baidu.com

SELECT SUBSTRING('www.baidu.com',-5)===>u.com

SELECT SUBSTRING('www.baidu.com',5,2)==>ba

SELECT SUBSTRING('www.baidu.com',-5,2);==>u.

SELECT SUBSTRING('www.baidu.com' FROM -5 FOR 2)==>u.

SELECT SUBSTRING_INDEX('www.baidu.com','.',2)==>截取第二个“.”之前的所有字符(www.baidu)

SELECT SUBSTRING_INDEX('www.baidu.com','.',-1);==》截取倒数第一个“.”之后的字符(com)

SELECT SUBSTRING_INDEX('www.baidu.com','rrr.',-1);==》字符不存在,返回整个str(www.baidu.com)

 

posted @ 2019-09-06 14:35  梁&&鞠  阅读(170)  评论(0编辑  收藏  举报