首页 > 解决方案 > 用特定值更新不同的列值

问题描述

一个表有一个名为“分数”的列,具有不同的值。

| 姓名 | 联系方式 | 面积 | 分数 |


| 詹姆斯 | +222451 | 东方|70 |
| 吉米 | +222451 | 爱斯特 | 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。请帮助

标签: javasql

解决方案


使用以下查询:

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();
}

推荐阅读