我有一个包含两列名称和分数的表格。 我说并且它有10个带有得分的名字,我想要用最低分来替换这一行 如果新分数大于或等于表格中的最低分数,则使用新名称和分数。
我设法获得了最高值的ResultSet,但我没有用新的名称和分数替换它(在java中)。
String newName = "Test";
int score = 12345;
ResultSet result;
Statement stat = conn.createStatement();
result = stat.executeQuery("SELECT * FROM Highscore ORDER BY Score DESC");
result.next();
if(result.getInt(2) <= score) {
// enter code here
}
答案 0 :(得分:1)
尝试这样的事情
String newName = "Test";
int score = 12345;
int newScore = 54321;
ResultSet result;
Statement stat = conn.createStatement();
result = stat.executeQuery("SELECT * FROM Highscore ORDER BY Score ASC");// use DESC if u want to replace the highest value
result.next();
if(result.getInt(2) <= score)
{
PreparedStatement preparedStatement = conn.prepareStatement("UPDATE Highscore SET Name =? Score = ? WHERE Score = ?");
preparedStatement.setString(1, newName);
preparedStatement.setString(2, newScore);
preparedStatement.setString(3, result.getInt(2));
int updateCount = preparedStatement.executeUpdate();
}
答案 1 :(得分:1)
You can use following code to update lowest score record :
String newName = "Test";
int score = 12345;
ResultSet result;
PreparedStatement ps = conn.prepareStatement("UPDATE Highscore SET NAME = ?, SCORE = ? WHERE SCORE = (SELECT MIN(SCORE) FROM Highscore)");
ps.setString(1, newName);
ps.setInt(2, score);
int updatedCount = ps.executeUpdate();
if(updatedCount>0)
System.out.println("Record Successfully updated");