mybatis sum(参数) 列名作为参数

it2022-05-05  133

项目中有很多个字段,当字段为空的时候,求该列的平均值并赋值给该字段。如:

idnameage

当我需要插入一条数据的时候,这条数据的age为空,那么需要先从数据库查询age的平均值,然后赋值给当前的数据。当字段很多的时候就需要列名作为参数查询了

mapper.xml
<select id="getGtAvg" parameterType="java.lang.String" resultType="bigDecimal"> select avg(${columnName}) from tb_chuai where ${columnName} &gt; 0 </select>
DAO
BigDecimal getGtAvg(@Param("columnName") String columnName);

注意事项:

1、 聚合函数,如sum、avg等resultType为bigDecimal或者integer类型 2、${}一般用于传输数据库的表名、字段名等,不能使用#{} ${} 与#{}的区别 3、mysql中的varchar可以进行sum,avg等操作,但是其中的汉字作为0,计算avg平均值的时候可能出现问题。


最新回复(0)