当前位置: 首页 > 编程笔记 >

MyBatis Mysql更新金额并返回更新后的数值

万俟浩
2023-05-05

客户表中的余额分为:储值余额和盈利余额

要求下单时订单金额优先从储值余额中扣除,其次盈利余额扣除

扣除储值余额,如返回的balance小于0为待扣除金额,说明还需要扣除盈利余额:

<update id="deductBalance" parameterType="com.pay.business.domain.CustomDO" >
   <!-- BEFORE:更新语句执行前执行selectKey -->
   <selectKey resultType="java.math.BigDecimal" keyProperty="balance" order="BEFORE">
      select (IFNULL(recharge_balance, 0)-#{rechargeBalance}) FROM bp_custom where account = #{account}
   </selectKey>
   update bp_custom set recharge_balance = case when IFNULL(#{balance}, 0) &lt;=0 then 0 else #{balance} end
   where account = #{account} and del_flag = '0'
</update>

 

 类似资料:
  • 问题内容: 我试图在扭曲的python中结合这两个查询: 和: 进入单个查询。有可能这样做吗? 我尝试将SELECT放在子查询中,但我不认为整个查询都会返回我想要的内容。 有没有办法做到这一点?(甚至更好,没有子查询)还是只需要坚持两个查询? 谢谢, 泉 问题答案: 您不能直接合并这些查询。但是您可以编写一个存储过程来执行两个查询。例:

  • 对于我的Hi/Lo实现,我需要一个函数来获取独占表锁、更新值并选择一行。我想出了以下代码: 但是,在调用该函数时,它返回的不是一行,而是一列,内容类似于“未命名门户3”。我想我应该迭代返回的ref(但如何)? 我可以使用的另一种方法是使用UPDATE RETURNING语句,但是我不确定在这种情况下是否会出现竞争情况。任何帮助都将不胜感激。谢谢

  • 我是不是漏掉了什么?

  • 我正在使用Selenium Python与美丽的汤一起刮数据。点击实时按钮后,我需要网站的html。我要点击按钮,但是新的超文本标记语言没有返回给我。我以为点击按钮后,html会很快返回,所以我睡了一觉。但即便如此,它只返回类“Collapsible__contentInner”的空div。 结果

  • 我正在创建一个递归导航迷宫的程序。代码: 然而,每当我到达死胡同时,它都不会回溯。当我调试时,它表明当程序从递归或“回溯”返回时,我的起始值专注于停留在我的死胡同空间。 例如: 9是我的出发点。2是我的退出。4是我的道路。1 表示墙壁。当我到达一个死胡同时(在本例中为第 7 行,第 2 列)。我的立场是等于整个程序其余部分的死胡同空间。这是为什么呢?

  • 假设我们有一个带有自定义方法的Spring数据存储库接口... 此方法只是设置实体的 deletedAt 字段,ok。有没有办法允许此方法返回 的更新版本? 明显地 …不起作用,因为… java.lang.IllegalArgumentException:修改查询只能使用void或int/Integer作为返回类型! 安宁是否知道另一种轻松允许这种情况的方法,当然除了明显的“在存储库和调用者之间添