mybatis 使用遇到check/use关键字报错

   如题,在mybatis的xml配置一个表的sql语句,发现我的字段名为check和use的时候,就会报错,后来查了下,原来是因为mysql的关键字冲突了,可以给表名取一个别名,然后引用就可以了:

 <!-- 更新一条医疗费用记录 -->
	<update id="updateMedicalAdd">
		update retire_infor_medical rm
		set rm.check = #{check},hospital_starttime=#{hospital_starttime}, 
		fee=#{fee},rm.use=#{use},way=#{way},isUnion=#{isUnion},
		comment = #{comment}
		where retire_infor_id = #{retireInforId} and DATE_FORMAT(hospital_endtime,'%Y-%m-%d') = #{hospital_endtime}
	</update>

参考博文:http://www.cnblogs.com/-mrl/p/6021959.html


插一个:

关于mysql的update、delete、和insert into能否使用别名问题

 

在工作中遇到这样一个问题,就是mysql在insert into时能不能使用别名,大家会很奇怪为什么insert into使用别名呢?原因在于原来的项目中使用了user表,新项目要将user表拆分为user和userinfo表,在不修改原代码的前提下,将user extends userinfo,而持久层用的是mybatis,所以写sql段的时候,get时要获取user和userinfo,这样就使用到了left join,又因为user和userinfo中有些同样的字段如uid,updatetime,status,等,所以将要取别名以是区分,所以get取别名后那些字段都要在前面家别名,这样就导致update和delete还有insert into时也会使用这个sql段,这样才有了那个需求,但是查阅了资料发现mysql不可以使用,所有最后解决办法是get方法另外加一个sql段,使用了别名,而原来的几个操作使用原来没有加别名的sql段,这样问题才解决了,不知我是否叙述清楚?

最后结论:在mysql的update、delete、和insert into不能使用别名,即:insert into user as u(u.uid,u.name,u.email...) value(...)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值