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がゼロとして出力されるため、テーブルが更新されません。このコードは、レコードがない(null値のみを含む)テーブルでは機能しません。しかし、いくつかのレコードが含まれているテーブルで作業しています。また、データベースで直接実行しようとしました。をquery executed successfully表示していますが、としてメッセージを表示してい(0 row(s) affected)ます。これは、データベースで正常に実行されているクエリです。`

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

私が言ったように、それはこのテーブルで機能しており、このテーブルはSYMBOL列の値を「be」として持っています。

4

1 に答える 1

0

クエリは正しく動作しています。一致するレコードがある場合は、行が更新されます。

したがって、クエリ では、フィールド値が「be」の行がUPDATE six SET SYMBOL='eq' WHERE SYMBOL='be';あるテーブルが更新されます。sixただし、NULLがある場合は更新されません。

クエリは実行されますが、レコードは更新されないため、影響を受ける行はゼロになります。

NULLしたがって、フィールド値として含まれている行を更新する場合。

追加IS NULL

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

于 2012-05-07T12:48:33.097 に答える