一:字符串截取处理
-- 注:mysql中处理字符串时,默认第一个字符下标为1
SELECT SUBSTRING('123456789',2) -- 从第2位开始截取
SELECT SUBSTRING('123456789',-2) -- 从倒数第2位开始截取
SELECT SUBSTRING('123456789',-3,2) -- 从倒数第3位开始截取,截取长度为2
SELECT LEFT('123456789',2) -- left(str, length) 说明:left(被截取字段,截取长度)
SELECT RIGHT('123456789',2) -- right(str, length) 说明:right(被截取字段,截取长度)
SELECT SUBSTRING_INDEX("blog.jb51.net",".",2)-- 如果关键字出现的次数是正数 如2 从左边第2个开始选取左边的),如果关键字出现的次数是负数 如-2 从右边第2个开始选取右边的)
SELECT LENGTH ("ab") -- string长度
SELECT CHAR_LENGTH("好茶仓") -- 获取中文字符串长度
SELECT REPLACE ("1211212112212" ,"1" ,"2" ) -- REPLACE (str ,search_str ,replace_str 在str中用replace_str替换search_str
SELECT CONCAT("1",SPACE(5),"1") -- SPACE(count) 生成count个空格
SELECT INSTR("123","1") -- 大于0存在, INSTR(str1 in str2)返回str1中str2所在的位置索引
SELECT LOCATE("1","123",2) -- 大于0存在, LOCATE(str1 str2 index)返回str2中str1所在的位置索引,可多一个起始位置的参数
SELECT POSITION('3' IN '123') -- 大于0存在, POSITION(str1 in str2)返回str2中str1所在的位置索引
SELECT FIND_IN_SET('1','1,2,3') -- 大于0存在, find_in_set(str1,str2)返回str2中str1所在的位置索引,str2必须以","分割开
SELECT SUBSTRING_INDEX("aaa_BBB_","_",1) -- 截取第一个符号之前的数据
二:日期处理函数
SELECT CURDATE() -- 获取当前日期
SELECT CURTIME() -- 获取当前时间
SELECT NOW() -- 获取日期时间
SELECT DATE(NOW()) -- 返回日期部分
SELECT DAYOFYEAR (NOW()) -- 一年中的第几天
SELECT WEEK (NOW()) -- 一年中的第几周
SELECT YEAR (NOW()) -- 获取当前年: year(time)
SELECT MONTH(NOW()) -- 获取当前月; month(time),monthname(time)
SELECT DAY(NOW()) -- 获取当前天; day(time)
SELECT HOUR (NOW()) -- 获取当前小时:hour(time)
SELECT MINUTE (NOW()) -- 获取当前分钟:minute(time)
SELECT SECOND (NOW()) -- 获取当前分秒:SECOND(time)
SELECT DAYNAME(NOW()) -- 从时间中选择出今天是周几:weekday(date),dayname(date)
SELECT SUBDATE(NOW(),1) -- 间减去后面的day
SELECT DATE_ADD(CURDATE(),INTERVAL 1 DAY); -- 加一天
SELECT DATEDIFF('2018-05-22','2018-05-25'); -- 两个日期差
SELECT TIMEDIFF('12:27:46','1:25:45') -- 两个时间差
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %k:%i:%s') -- 时间格式化函数
SELECT TIME_TO_SEC(NOW()) -- 时间转秒数
SELECT SEC_TO_TIME (62399) -- 秒数转成时间
SELECT FROM_UNIXTIME(1256540102) -- 将时间戳转换为时间
三:拼接处理函数
SELECT CONCAT('大','小')
SELECT CONCAT('大',NULL)
SELECT CONCAT_WS('_','大','小','中')
SELECT CONCAT_WS('_','大','小',NULL)
-- 语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
SELECT NAME,GROUP_CONCAT(DISTINCT CONCAT_WS('-',id,`attribute_name`,`sell_price`) ORDER BY id ASC SEPARATOR ",") FROM `order_product` GROUP BY `name`
四:其它常用函数
SELECT CHAR_LENGTH("ab") -- 获取字符串字符数函数:char_length(str)
SELECT UCASE("ab") -- 转换大写 ucase(x)
SELECT LCASE("AB") -- 转换小写 lcase(x)
SELECT TRIM(" abcd ") -- 去除字符串str两边的空格
SELECT ROUND('12.356',2) -- 四舍五入函数:round(x,y)
SELECT FORMAT('2.356',2) -- 数字x进行格式化
SELECT STRCMP(12,10) -- STRCMP(expr1,expr2),expr1>expr2:1,expr1=expr2:0,expr1<expr2:-1
SELECT SIGN(-12) -- SIGN (number2 ) // 正数返回1,负数返回-1
SELECT LEAST(1,-2,3,4) -- LEAST (number,number2 [,..]) //求最小值
SELECT 0+CAST(2.10000 AS CHAR) -- 去除多余的0
五:系统信息函数
SELECT VERSION() -- 函数返回数据库的版本号;
SELECT CONNECTION_ID() -- 函数返回服务器的连接数,也就是到现在为止MySQL服务的连接次数;
SELECT DATABASE() -- 和SCHEMA()返回当前数据库名。
SELECT USER() -- 返回当前用户的名称