美文网首页
MySQL 中常用函数(2)

MySQL 中常用函数(2)

作者: djz0306 | 来源:发表于2019-07-10 21:00 被阅读0次

    时间日期函数

    当前日期和时间(now):

    select now();
    

    now() 函数取出的是 datetime 类型,即年-月-日 时 : 分 : 秒

    当前日期(curdate):

    select curdate();
    

    返回的是当前日期,date 格式,即年-月-日

    当前时间(curtime):

    select curtime();
    

    返回 time 格式的时间,即 时 : 分 : 秒

    查看是那周第几天(dayofweek)

    select dayofweek("2017-07-10");
    

    前面的 0 可以不补充,和 date 类型一样,但是是以周日作为第一天开始的,类似的还有 dayofmonth, dayofyear ,dayname(星期几)

    查看是那一年的第几周(week)

    select week("2019-07-10");
    

    md5(md5)

    select md5("mysql");
    

    流程控制函数

    case ... when ... then ...

    select case name, case gender when 1 then '男' when 0 then '女' else '保密' end as sex from test;
    

    case 后面填写列名,然后类似编程语言中的 switch 一样,用 when ... then ... 连接。最后可以加 else 没有 else 且不符合所有 when 值则会返回 null,最后以 end 结束

    if(exp1, exp2, exp3)

    select if(gender=0.'优先','等待') as vip from test;
    

    类似三目运算符,如果 exp1 为真则返回 exp2,否则返回 exp3

    ifnull(exp1, exp2)

    select ifnull(1/0,10);
    

    如果表达式 exp1 为 null 则返回 exp2,否则返回 exp1

    系统调试函数

    返回用户与主机(user)

    select user();
    

    返回当前操作的数据库名(database)

    select database();
    

    返回数据库版本(version)

    select version();
    

    使用注意事项

    1. MySQL 中的函数使用必然会影响到查询速度,所以在建表时就应考虑到,通过合理的表结构减少函数使用
    2. 如果确实要用到函数,优先放在业务逻辑层处理,例如 Java,PHP,Python 等
    3. 在 MySQL 中使用了函数,则此列的索引将不能使用,例如,select name email from table where right(position(email))='gmail.com'中 email 列是有索引的,本可以加快查询速度,但是因为使用的不是 email 列,而是函数处理后 email 后的返回值,则该列的查询就很缓慢了

    相关文章

      网友评论

          本文标题:MySQL 中常用函数(2)

          本文链接:https://www.haomeiwen.com/subject/fjbkkctx.html