mybatis sum(參數(shù)) 列名作為參數(shù)的問題
sum(參數(shù)) 列名作為參數(shù)
項目中有很多個字段,當字段為空的時候,求該列的平均值并賦值給該字段。如:
id | name | age |
當我需要插入一條數(shù)據(jù)的時候,這條數(shù)據(jù)的age為空,那么需要先從數(shù)據(jù)庫查詢age的平均值,然后賦值給當前的數(shù)據(jù)。當字段很多的時候就需要列名作為參數(shù)查詢了
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、 聚合函數(shù),如sum、avg等resultType為bigDecimal或者integer類型
2、${}一般用于傳輸數(shù)據(jù)庫的表名、字段名等,不能使用#{}
3、mysql中的varchar可以進行sum,avg等操作,但是其中的漢字作為0,計算avg平均值的時候可能出現(xiàn)問題。
mybatis注解sql sum(參數(shù))傳參寫法
驗證了很久sum()里面帶參數(shù)方式 #{參數(shù)}一直不行日志顯示參數(shù)已經(jīng)傳進 但就是加不上去 返回的始終是0
后面換成$(參數(shù))之后就行了
@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);
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析Java編程中對于包結(jié)構(gòu)的命名和訪問
這篇文章主要介紹了Java編程中對于包結(jié)構(gòu)的命名和訪問,是Java入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-12-12Mybatis?mysql模糊查詢方式(CONCAT多個字段)及bug
這篇文章主要介紹了Mybatis?mysql模糊查詢方式(CONCAT多個字段)及bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01解析Spring Boot 如何讓你的 bean 在其他 bean&n
在 SpringBoot 中如何讓自己的某個指定的 Bean 在其他 Bean 前完成被 Spring 加載?我聽到這個問題的第一反應是,為什么會有這樣奇怪的需求?下面小編給大家分析下Spring Boot 如何讓你的 bean 在其他 bean 之前完成加載 ,感興趣的朋友一起看看吧2024-01-01如何通過properties文件配置web.xml中的參數(shù)
這篇文章主要介紹了如何通過properties文件配置web.xml中的參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08解決FeignClient發(fā)送post請求異常的問題
這篇文章主要介紹了FeignClient發(fā)送post請求異常的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07