MySQL学习之函数1

1.字符函数

①length().获取参数的字节个数(字符的实际长度)

       SELECT LENGTH('张三abc');----->9

       一个汉字算三个字节,一个数字或字母算一个字节。

②char_length(),获取参数的字符个数

      SELECT CHAR_LENGTH('张三abc');----->5

      不论汉字、数字、字母都算一个字符

③concat() 拼接字符串

   group_concat() 聚合拼接

④upper() lower() 转换大小写

⑤substr() substring() 在mysql两个函数一样的,但在java中这两个函数意思不一样。

    注意:mysql中索引都是从1开始的。

   常用的两个函数:1.从索引位置开始一直截取到最后  2.从索引位置开始截取指定的长度

⑥left()、right()函数 和截取差不多,返回指定长度的最左边或者最右边的字符

    SELECT LEFT('abcde12345',5); -----abcde

⑦SUBSTRING_INDEX(str,delim,count)函数 分割字符返回指定索引处之前或者之后的字符

    SELECT SUBSTRING_INDEX('www.baidu.com','.',2);---------www.baidu

    SELECT SUBSTRING_INDEX('www.baidu.com','.',-2);---------baidu.com

   如果找不到指定的分隔符,则会返回整个串。

⑧instr(s1,s2)   返回s2子串在s1串中的索引位置,如果没有返回0,如果多个,返回第一次出现的索引位置

    SELECT INSTR('www.com.baidu.com.com','com');----5

⑨trim() 函数,去掉前后空格(大家都知道,java也有这个函数),也可以去掉前后指定的字符

      SELECT TRIM('aa' FROM 'aaaaa哈哈a哈aaa');-------a哈哈a哈a

⑩lpad() 用指定的字符实现左填充指定的长度

    SELECT LPAD('张三',5,'*');---------***张三,

        注意:返回的字符(不是字节)长度为5,如果不够,则用*填充,如果超过,则截取最左边的5个长度的字符串 

     SELECT LPAD('张三是个聪明人',5,'*');------张三是个聪

 同理rpad() 右填充,用法类似。

⑾replace(str,from_str,to_str) 替换,如果出现多个,全部替换

    SELECT REPLACE('张三想打李四','张三','王五');------- 王五想打李四

 ⑿FIND_IN_SET(str,strlist) 和like差不多,只是like为模糊匹配,find_in_set为精确匹配,以英文,分割

    SELECT FIND_IN_SET('b','a,b,c,d');--------2,我个人还是比较常用这个函数

2.数学函数

 ①round 四舍五入,默认四舍五入取整,重载函数第二个参数确定小数点后几位四舍五入

     SELECT ROUND(1.2453,2);-----1.25

②ceil  向上取整,返回大于等于该参数的最小整数

    SELECT CEIL(1.25);----2     SELECT CEIL(1.00);------1

③floor   向下取整 ,返回小于等于改参数的最大整数

   SELECT FLOOR(1.332); ------ 1  SELECT FLOOR(1.00); ----1

④TRUNCATE  截断   指定小数点后几位

   SELECT TRUNCATE(1.323232,2);----1.32  取两位

⑤ mod 取余

   SELECT MOD(-10,-3);-----(-1)

  注意:至于结果是负数还是整数,要么就看第一个是负数还是整数,那么结果就是负数或者整数

    公式:取余的结果公式为  mod(a,b)=a-a/b*b

猜你喜欢

转载自blog.csdn.net/qq_36781718/article/details/81772385