gpt4 book ai didi

mysql - 如何使用ibatis检查更新语句中是否为空?

转载 作者:行者123 更新时间:2023-11-29 23:26:54 25 4
gpt4 key购买 nike

下面使用 ibatis xml 提到了我的原始查询:数据库记录未更新。

<update>
update
nest set
nstatus = #status#
where
nestid =
#nestId# and (nstatus != #deviceStatus# OR nstatus IS NULL)
</update>

但是 java SQL 正在准备以下查询,我的日志如下。

DEBUG java.sql.Connection - {conn-100103} Preparing Statement:    update   nest set   nstatus = ?   where   nestid =   ? and nstatus != ? or nstatus = NULL  
DEBUG java.sql.PreparedStatement - {pstm-100104} Executing Statement: update nest set nstatus = ? where nestid = ? and nstatus != ? or nstatus = NULL
DEBUG java.sql.PreparedStatement - {pstm-100104} Parameters: [Apple, 150495, Device]
DEBUG java.sql.PreparedStatement - {pstm-100104} Types: [java.lang.String, java.lang.Integer, java.lang.String]

并且我正在使用 mysql Db 来更新记录,它接受以下更新查询。(= null) 在更新记录时 mysql 中不接受(IS NULL) 可以更新记录

声明应该是这样的:

update   nest set   nstatus = ?   where   nestid =   ? and nstatus != ? or nstatus IS NULL 

请告诉我解决方案,我应该在我的ibatis更新语句中做什么改变。

最佳答案

您需要将更新命令重构为

update nest set
nstatus = #status#
where
( nestid = #nestId# AND nstatus != #deviceStatus#)
OR
nstatus IS NULL

关于mysql - 如何使用ibatis检查更新语句中是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com