java代码片段
Map<String, Object> params =new HashMap<>();
params.put("users", "张三,李四,王五,李六");//此为前端传入参数
String[] users = params.get("users").toString().split(",");
for (int i = 0; i < users .length; i++) {
params.put("old_dis_status", "0");
params.put("new_dis_status", "1");
params.put("user", users[i]);
//更新
int c = tUserMapper.upState(params);
if (c == 0) {
System.out.println("错误");
}
}
sql片段
update user_info
set dis_status=#{map.new_dis_status},time=now()
where user=#{map.user} and dis_status=#{map.old_dis_status}
表数据及结构
id(主键自增) | user(唯一)| time | dis_status
1 | 张三 |(NULL) | 0
2 | 李四 |(NULL) | 0
3 | 王五 |(NULL) | 0
4 | 李六 |(NULL) | 0
前两次循环都能正常返回1条受影响,到了第三次就出现更新条数为0
但是用更新条数为0的参数,重新在数据库中单独执行却能显示1条受影响
这种问题需要如何解决?