gpt4 book ai didi

Mysql确定是否更新找到行,即使没有改变

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:50 25 4
gpt4 key购买 nike

我希望能够返回更新后找到的行数,即使该行没有更改。我原以为我可以使用 row_count(),但是,它返回实际更改的行数。因此,例如,如果我对一行进行更新并且该行存在但未更改,则 row_count() 返回 0。如果该行不存在,它也可以返回 0。我对更新使用唯一键并因此更新 0 行或 1 行的情况特别感兴趣。

有没有一种简单的方法可以在更新后获取找到的行数?

下面的一些答案描述了如何使用 php 或 java 执行此操作,但是如何在存储过程本身中执行此操作(换句话说,如果不使用 java 和 php)

最佳答案

它在 mysqli_real_connect options 中可用

MYSQLI_CLIENT_FOUND_ROWS 返回匹配的行数,而不是受影响的行数

对于java,

Statement.executeUpdate() 或 execute() 后跟 getUpdateCount() 将返回匹配的行数,根据 JDBC 规范,未更新。

对于 Java 中的存储过程调用,您可以使用 like,

public static void executeUpdateStoredProcedure(Connection con) {
try {
CallableStatement cstmt = con.prepareCall("{calldbo.UpdateTestTable(?, ?)}");
cstmt.setString(1, "A");
cstmt.setInt(2, 100);
cstmt.execute();
int count = cstmt.getUpdateCount();
cstmt.close();

System.out.println("ROWS AFFECTED: " + count);
}
catch (Exception e) {
e.printStackTrace();
}
}

关于Mysql确定是否更新找到行,即使没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28236501/

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