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() 这个函数是判断列是不是空的