mybatis sum(参数) 列名作为参数的问题
程序员文章站
2022-06-15 14:21:55
目录sum(参数) 列名作为参数注意事项mybatis注解sql sum(参数)传参写法sum(参数) 列名作为参数项目中有很多个字段,当字段为空的时候,求该列的平均值并赋值给该字段。如:idname...
sum(参数) 列名作为参数
项目中有很多个字段,当字段为空的时候,求该列的平均值并赋值给该字段。如:
id | name | age |
当我需要插入一条数据的时候,这条数据的age为空,那么需要先从数据库查询age的平均值,然后赋值给当前的数据。当字段很多的时候就需要列名作为参数查询了
mapper.xml
<select id="getgtavg" parametertype="java.lang.string" resulttype="bigdecimal"> select avg(${columnname}) from tb_chuai where ${columnname} > 0 </select>
dao
bigdecimal getgtavg(@param("columnname") string columnname);
注意事项
1、 聚合函数,如sum、avg等resulttype为bigdecimal或者integer类型
2、${}一般用于传输数据库的表名、字段名等,不能使用#{}
3、mysql中的varchar可以进行sum,avg等操作,但是其中的汉字作为0,计算avg平均值的时候可能出现问题。
mybatis注解sql sum(参数)传参写法
验证了很久sum()里面带参数方式 #{参数}一直不行日志显示参数已经传进 但就是加不上去 返回的始终是0
后面换成$(参数)之后就行了
@select("select sum(${type}) from "+ table_hour + " where date_format(`date`,'%y-%m-%d') = #{date}") public int selectday2(@param("date") string date,@param("type") string type);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
c语言初学-关于指针作为参数并改变它的值的问题
-
C#中的数组作为参数传递所引发的问题
-
解决MyBatis @param注解参数类型错误异常的问题
-
mybatis中association和collection的column传入多个参数问题
-
mybatis框架order by作为参数传入时失效的解决
-
mybatis sum(参数) 列名作为参数的问题
-
关于C语言中:初始化指向NULL的指针作为参数报错问题---原因是指向NULL 的指针没有指向具体的地址空间
-
c语言初学-关于指针作为参数并改变它的值的问题
-
MyBatis框架中Mapper方法中的参数问题解决方案
-
C#中的数组作为参数传递所引发的问题