您的位置:首页 > 数据库 > MySQL

整理mysql常用内置函数

2016-11-03 19:31 267 查看
    用在select语句、子句 where ,order by having等
    用在update 和delete 中
函数中可将字段名作为变量来用,值是这个列对应的每一条记录。
    查询元数据  information_schema

1. 字符串

    length(name)    //返回长度

    concat('abc','def',name)  //整列可以链接

    concat_ws(separator,str1,str2)  使用sep链接str1和str2
   insert("abcdef",1,2,"a")  //将 abcdef的0开始2个长度的字符串替换为a,结果为 acdef 
       select insert(name,1,2,"aa")from users;
    lower(str)   upper(str) //比较比较常用
       select name from users where lower(name)=='aaa';
    left(str, size)  right(str,size)  mid(str,pos,size)
    locate(substr,str,[start]) //从str的start位置开始查找substr
    substring(str,[from],pos,len)
    repeat('MySQL',3)   //得到 mysqlmysqlmysql
replace(str,from_str,to_str)   //替换字符串
        update ta1 SETname=REPLACE(name,
'gbin1.com','gbtags.com')WHERE name LIKE'%John%';


    lpad(sr,length,padstr)   //str的左边由padstr补全到length长度   rpad
    trim(str)   ltrim(str)  rtrim(str)   //去除空格
    reverse(str)  翻转
    space(len)  // 返回len长度的空格
    strcmp(s1,s2)

2. 数值函数

    abs(x)
    ceil(x)
    floor(x)
    mod(n,m)  ( n%m )
    PI()    返回pi的值
    rand()  返回0,1之间的随机
    round(x,y) 返回x 四舍五入的,y位小数的值
    sign(x)  返回x的符号 -1 0 1 
    truncate(x,y) 返回x截断为y位小数的值

3. 日期

    curtime()  当前时间
    curdate()  当前日期
    now()   日期 和时间
    unix_timestamp(now())   timestamp格式的毫秒数
    from_unixtime(tempstap) 将timestamp转换为正常日期
    hour()   week() date() minute() , monthname() 如:    
       SELECT DATE('2003-12-31 01:02:03') , minute(curtime());
    data_format(now(),'%y-%m-%d') 格式化日期    

4. 流程控制

    if(value, t,f)  //value为真返回t,否则返回f
       select if(age>18, '成人','儿童')  
    ifnull(value1,value2) //如果value1不为空返回value1,否则返回 value2 ,用来替换空值,如
       ifnull(age,0)
    case value when[compare-value] then [result1].. else [default] end   //类似于switch语句
       select case age when 60 then 'old' else 'man' end     

5. 其他函数    

    database() 返回数据库
    version()
    user()   当前用户
    inet_aton(ip)  inet_ntoa(num)
    password()  //用于mysql自己的认证,如创建mysql用户,不建议用于应用程序,算法会改变
 

       password('12345')  
    md5()   //对应用系统中用户密码加密
       md5('12345')  
    

6. 字符串查找

    % 多个, _ 一个,  \%和\_是字符转义
    正则表达式 见 参考G MySQL正则表达式
    SELECT 'fo\nfo' REGEXP'^fo$'   返回0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: