记录一次 sql在数据库可以查到 mybatis代码查不到的问题

原始代码:
查不到
SELECT
	b.ID,
	b.PRICE_ITEM_CODE,
	b.PRICE_NAME,
	b.DES_SITE_CODE,
	b.SRC_SITE_CODE,
	b.CALC_TYPE,
	b.BIZ_TYPE,
	b.CACULATE_MODE,
	b.PRODUCT_CODE,
	b.PRODUCT_EFFECT,
	b.DIS_TYPE,
	b.START_DATE,
	b.END_DATE,
	b.CREATE_DATE,
	b.MODIFY_DATE,
	b.CREATE_USER_CODE,
	b.MODIFY_USER_CODE,
	b.AUDIT_STATUS,
	b.AUDIT_USER_CODE,
	b.AUDIT_DATE,
	b.AUDIT_OPINION,
	b.RELE_SITE_CODE,
	b.REMARKS,
	b.AUDIT_KINDS,
	b.OFFER_STATUS
FROM
	T_FOMF_SUPPER_PRICE_MAIN_AD b
WHERE
    1=1
<!--     AND b.PRICE_ITEM_CODE = '557'   写死可以查到   -->
<!--     	 计费类型 -->
<trim></trim>
      <if test="priceItemCode != null and priceItemCode !=''" >
      		AND b.PRICE_ITEM_CODE = #{priceItemCode,jdbcType=VARCHAR} 
      </if>

  问题所在:PRICE_ITEM_CODE 字段的类型为 CHAR(5)导致

       由于不满足5个长度会自动补,导致查不到。

解决方式: 加trim

SELECT
	b.ID,
	b.PRICE_ITEM_CODE,
	b.PRICE_NAME,
	b.DES_SITE_CODE,
	b.SRC_SITE_CODE,
	b.CALC_TYPE,
	b.BIZ_TYPE,
	b.CACULATE_MODE,
	b.PRODUCT_CODE,
	b.PRODUCT_EFFECT,
	b.DIS_TYPE,
	b.START_DATE,
	b.END_DATE,
	b.CREATE_DATE,
	b.MODIFY_DATE,
	b.CREATE_USER_CODE,
	b.MODIFY_USER_CODE,
	b.AUDIT_STATUS,
	b.AUDIT_USER_CODE,
	b.AUDIT_DATE,
	b.AUDIT_OPINION,
	b.RELE_SITE_CODE,
	b.REMARKS,
	b.AUDIT_KINDS,
	b.OFFER_STATUS
FROM
	T_FOMF_SUPPER_PRICE_MAIN_AD b
WHERE
    1=1
<!--     AND b.PRICE_ITEM_CODE = '557' -->
<!--     	 计费类型 -->
      <if test="priceItemCode != null and priceItemCode !=''" >
      		AND trim(b.PRICE_ITEM_CODE) = #{priceItemCode,jdbcType=VARCHAR} 
      </if>

  

猜你喜欢

转载自www.cnblogs.com/acme6/p/9549902.html