美文网首页
工作中的用的一些mysql函数(一)

工作中的用的一些mysql函数(一)

作者: 朦胧蜜桃 | 来源:发表于2018-05-02 13:56 被阅读0次

    工作中常用函数

    1.concat 函数

    利用concat函数查询一个搜索条件在多个字段进行查询
    concat函数会将三个字段进行拼接,然后在三个字段中进行搜索
    CONCAT(business_development_province,business_development_city,business_development_country) like '%${region}%'

    2.case when函数 str_to_date函数

    (case
    when dscod.order_no is not null and now()>str_to_date(plan_time,"%Y-%m-%d %H:%i:%s")then '0'
    when dscod.order_no is not null and now()>str_to_date(plan_time,"%Y-%m-%d %H:%i:%s") then '2'
    end
    ) as hasRepay,
    工作场景:需要根据当前时间判断数据库字段中日期时间判断是否满足某种条件
    同时用到了str_to_date将数据库中字符串转为日期时间

    3.IF(expr, v1, v2)函数

    如果expr成立,返回值为v1,否则返回v2
    项目中应用:

    IF
    ( dscod.order_no IS NULL, "0", "1" ) AS hasRepay

    如果订单号为空 返回"0",否则返回"1"

    4.format函数

    1.FORMAT函数在mysql中是数据内容格式化的,格式化后得到结果:###,###,#####。
    SELECT FORMAT(100000,2);
    输出结果:
    100,000.00
    2.可以格式化数据为整数或者浮点数。
    select format(100.31111,2);
    输出结果:
    100.31
    select format(100.31111,0);
    输出结果:
    100
    3.具有四舍五入的功能
    SELECT FORMAT(423423234.65534453,2);
    输出结果:
    423,423,234.66

    项目中应用
    format (principal+interest+manage_amount,2) AS otherExpenses,
    将三个字段值进行相加(数据库类型为varchar类型 varchar类型是整型的话可以直接相加) 然后截取小数点后两位 (也可用round(principal+interest+manage_amount,2) AS otherExpenses,更为合适)

    5.isnull(expr) 的用法:

    如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
    mysql> select isnull(1+1);
    -> 0
    mysql> select isnull(1/0);
    -> 1
    使用= 的null 值对比通常是错误的。

    isnull() 函数同 is null比较操作符具有一些相同的特性。请参见有关is null 的说明。

    6.IFNULL(expr1,expr2)的用法:

    假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1;
    否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

    mysql> SELECT IFNULL(1,0);
    -> 1
    mysql> SELECT IFNULL(NULL,10);
    -> 10
    mysql> SELECT IFNULL(1/0,10);
    -> 10
    mysql> SELECT
    IFNULL(1/0,'yes');

            ->   'yes'  
    

    IFNULL(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或
    INTEGER。假设一个基于表达式的表的情况, 或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:
    CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
    在这个例子中,测试列的类型为 CHAR(4)。

    7.NULLIF(expr1,expr2) 的用法:

    如果expr1
    = expr2 成立,那么返回值为NULL,否则返回值为 expr1。这和CASE WHEN expr1 = expr2
    THEN NULL ELSE expr1 END相同。
    mysql> SELECT
    NULLIF(1,1);

           ->   NULL   
    

    mysql> SELECT NULLIF(1,2);
    -> 1
    如果参数不相等,则 MySQL 两次求得的值为 expr1

    8.DATE_FORMAT()

    函数用于以不同的格式显示日期/时间数据。

    DATE_FORMAT(date,format)
    date 参数是合法的日期。format 规定日期/时间的输出格式。

    相关文章

      网友评论

          本文标题:工作中的用的一些mysql函数(一)

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