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)