一个表具有一个名为“ score”的列,其值不同。
|名称|联系区域|得分||
|詹姆斯+222451 | eastp | 70 | |
|吉米+222451 | eestp || 80 ||
|乔什+222451 | ecstp || 50 ||
|约翰· +222451 || efstp || 60 | |
我想用一个特定值更新所有得分值。例如。用10更新所有得分值。
因此值70将为80
值80将为90
值50将是60
值60将是70
请编写代码以实现此目标。
写下了这一点,但所有列均更改为相同的值。请帮忙。
int reg = 10;
try {
String sql1 = "select Score from db_table where ID=db_table.ID";
pst = con.prepareStatement(sql1);
rs = pst.executeQuery();
while(rs.next())
{
int ad = rs.getInteger("Score");
int fad = ad+reg;
String sql2 = "update db_table set Score='" + fad + "' where _ID=db_table.ID";
pst = con.prepareStatement(sql2);
pst.execute();
}
} catch(SQLException | HeadlessException e)
{
JOptionPane.showMessageDialog(null,e);
} finally
{
try
{
rs.close();
pst.close();
} catch(Exception e)
{}
}
但是在任何时候执行时,整个列值都将被替换为相同的值“ 10”。而不是将每个列的值都增加10。请帮助
答案 0 :(得分:1)
使用以下查询:
UPDATE db_table
SET score = score + 10
因此,基本上,您不需要先SELECT
的所有乐谱,然后在Java代码中对其进行操作,并逐个使用UPDATE
。相反,请按照以下步骤在Java代码中更改您的 try块:
try
{
String sql1 = "UPDATE db_table Set score = score + " + String.valueOf(reg);
pst = con.prepareStatement(sql1);
rs = pst.executeQuery();
}
答案 1 :(得分:0)
尝试一下:
int reg = 10;
try{
String sql1="select Score from db_table where ID=db_table.ID";
pst=con.prepareStatement(sql1);
rs=pst.executeQuery();
while(rs.next()){
int ad = rs.getInteger("Score");
int fad = ad+reg;
String sql2 = "update db_table set Score=Score + "+fad+" where _ID=db_table.ID";
pst=con.prepareStatement(sql2);
pst.execute();
}
}catch(SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null,e);
}finally{
try{
rs.close();
pst.close();
}
catch(Exception e){}
}