1.ignore的用法
在insert 后面加上ignore之后,如果插入的数据有重复等问题时,失败不会报错,很实用的小技巧
<insert id="insertSuccessKilled">
<!--当出现主键冲突时(即重复秒杀时),会报错;不想让程序报错,加入ignore-->
INSERT ignore INTO success_killed(seckill_id,user_phone,state)
VALUES (#{seckillId},#{userPhone},0)
</insert>
2.ifnull(a,0)函数的用法
下面的sql语句是查询购物车表中所有商品的和
有一个隐患:如果userId不存在,返回值就是null,int不能为null
解决思路:将int换成integer,将逻辑拉到外面去判断(当null发生是,将商品个数换成0)
或者使用ifnull(a,0)的语法,如果前面为null,则返回值为后面的数字
<select id="selectCartProductCount" resultType="int" parameterType="int">
select ifnull(sum(quantity),0) from mmall_cart
where user_id = #{userId}
</select>