MySQL学习系列二---MySQL函数

来源:互联网 发布:java 替换特殊字符 编辑:程序博客网 时间:2024/05/21 19:10

MySQL提供了一些操作字符串和日期等的内置函数,可以大大简化我们的开发,这里整理一下常用的函数。

字符串函数

BIN(number)
返回给定整数值对应的二进制字符串,输入null则返回null。

select BIN(10) ----> 1010

CAST(experssion as type)
将一种数据类型转为另一种数据类型的值。type可以是CHAR、DATE、DATETIME、TIME、BINARY等。

COALESCE(column[,…])
返回逗号分隔符列表中最左边的非null的字符串或列,如所有都为null则返回null。

//fristName有值,则返回firstName,都没有返回“noName”select COALESCE(firstName,SecondName,“noName”)

CONCAT(string,…)
将字符串或列拼接起来,合并到一个字段中,如果有一个为null,则返回null。还可以将给定列的数值转为字符串。

select CONCAT(firstName,' ',secondName) as name form user

CONCAT_WS(separator,stirng,..)
用指定的分隔符连接列或字符串。

select CONCAT_WS('|','a','b','c') ---> a|b|c

FIND_IN_SET(string,string_list)
返回第一个参数在第二个参数的位置,第二个参数时由逗号隔开的单一字符串,没有则返回0,有一个为null,则返回null。

select FIND_IN_SET('b','a,b,c') ----> 2

INSERT(string,position,length,new_string)
将最后一个参数插入到第一个参数的指定位置,如果length大于0,会覆盖指定数目的字符,即替换,如果一个参数为null,则返回null。

SELECT INSERT('123456',2,0,'7') ----> 1723456SELECT INSERT('123456',2,1,'7') ----->173456SELECT INSERT('123456',2,2,'7') ----->17456

INSTR(string,substring)
返回子字符串在第一个参数首次出现的位置。没有返回0。

LOWER(string)
转换为小写字母。

LEFT(string,length)
返回左边的length长个字符。

select LEFT('123456',3----->123

LENGTH(stirng)
返回字符串的长度,假定一个字符为一个字节

LOAD_FILE(file)

读取文件内容,作为字符串返回。

SELECT LOAD_FILE('D:\1.txt')

LOCATE(substring,string,postion)
返回子字符串在string首次出现的位置,position收索的位置。

MID(string,position,length)
截取字符串。

REPLACE(string,old,new)
字符串替换。

REVERSE(string)
倒序。

日期和时间函数

ADDDATE(date,days)
ADDDATE(date,INTERVAL value type)
为指定日期加一个时间间隔。

select ADDDATE('2017-04-15',INTERVAL 1 MONTH) -----> 2017-05-15

CURDATE()
以yyyy-mm-dd返回当前时间。

CURTIME()
以hh:mm:ss返回当前时间

DATE(experssion)
返回yyyy-mm-dd部分。

DATE_FORMAT(date,”)
格式化日期。

DATEDIFF(date,date)
返回两个日期的差值(天数)。

SELECT DATEDIFF('2017-03-15','2017-04-15') ---> -31

DAY(date)
返回日期在某月的天数

LAST_DAY(date)

返回date月的最后一天的日期。

MONTH(date)
返回月份。

SECOND(date)
返回秒数

YERR(date)
返回年份

控制流程函数

CASE value WHEN value1 THEN result … ELSE END
CASE WHEN conditionTHEN result … ELSE END

IF(condition,result1,result2)
如果condition值为0或null,返回result2,否则返回result1

IFNULL(condition,result)
如果condition不为null,则返回condition的值,否则返回result

ISNULL(column)
如果为null返回1,不为null返回0

NULLIF(condition,condition2)
如果两个参数相等,返回null,否则返回第一个参数的结果

0 0
原创粉丝点击