0

我正在尝试以下代码。

String sym=request.getParameter("symbol");
Statement st1=con.createStatement();
String symIns="UPDATE "+tblname+" SET Symbol='+sym+'";
int m=st1.executeUpdate(symIns);
if(m==0)
    out.println("m is zero");
else 
if(m!=0)
    out.println("Inserted");

我从上一页收到 sym 和 tblname 的值。但是在执行此代码后,它将 m 打印为零,因此不更新表。此代码不适用于没有任何记录(仅包含空值)的表。但是为其中有一些记录的表工作。我也尝试直接在数据库中执行它。它正在显示query executed successfully,但将消息发送为(0 row(s) affected)。这是在数据库中成功运行的查询。`

UPDATE 6 SET SYMBOL='eq' WHERE SYMBOL='be';

正如我所说,它适用于该表,并且该表的 SYMBOL 列的值为“be”。

4

1 回答 1

0

查询行为正确。如果您有匹配的记录,它将更新行。

因此,在您的查询 UPDATE six SET SYMBOL='eq' WHERE SYMBOL='be';中,它将更新six您具有字段值为“be”的行的表。但它不会更新你有NULL的地方。

查询将执行但不更新任何记录,因此返回零行受影响。

因此,如果要更新包含NULL字段值的行。

添加IS NULL

UPDATE six SET SYMBOL='eq' WHERE SYMBOL IS NULL

于 2012-05-07T12:48:33.097 回答