mysql常用内置函数

来源:互联网 发布:办公软件培训 编辑:程序博客网 时间:2024/06/05 03:43

    用在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

0 0
原创粉丝点击