mysql 函数以及操作总结

1. 拼接 concat(参数1,参数2,.. ,参数)  实现将多个字符串拼接到一起

   要批量修改一个字段值   字段值又是复杂的sql 计算得来   通过查询字段值 和 修改的条件fundId(这是where后面的 条件) 拼接成一个update 语句

   update  table set  字段=查询的值  where 条件字段=查询的条件值

select CONCAT('update f_fund u set u.nonlocal_proportion=',
 1-IFNULL(
(((select IFNULL(SUM(t.application_money),0) from f_tax_fee t where t.display_state = 1 and t.fund_id = f.id and t.audit_status = 2)
 +
 ((select IFNULL(SUM(gif.money),0) from f_guide_invest_fund gif where gif.fund_id = f.id and gif.display_state = 1)
 +
  (select IFNULL(SUM(o.money_rmb),0) from f_other_lp o where o.fund_id=f.id and o.display_state = 1 and o.type = 4))*2)
  /
 (
    f.fund_size
    ))
,0),
 ' where u.id=','''',f.id,'''',';'
)
 from f_fund f where f.display_state = 1

执行SQL后执行结果  如: update f_fund u set u.nonlocal_proportion=-15.0000000000 where u.id='AB6CC2948D8E408A9FD0A2799F7196BB';

将查询的批量的修改语句执行修改

在拼接的时候  需要拼接单引号  (') 那么单引号拼接采用的是 ‘‘’’两个双引号才能显示单引号

2)sum() 函数的使用 我们经常采用sum总统计操作  有时候我们统计的一列字段  某一个是null 那么sum()函数会自动将null忽略到能正确的计算 当所有数值都是null的时候这时候 sum()函数返回的是一个null  那么我们经常会在得到结果的时候讲结果集运算 当java代码经常采用BigDecimal来操作的时候 那么会报异常,除了在java代码中做判断外  我们还会在sql查询结果集进行处理这就用到了3)这个函数

3)ifnull(参数1,参数2)  参数1使我们查询的结果集  参数2是我们如果查询是null的时候默认给的值  就相当于java if else操作  

     查询常用操作  ifnull(sum(列),0)  这样sum函数结果集是null的时候返回的就是默认0这样返回值就不是null了

4)isnull() 这个函数是判断列是不是空的  

 

 

   

posted @ 2019-01-16 10:09  liuwd  阅读(249)  评论(0编辑  收藏  举报