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

浙公网安备 33010602011771号