gpt4 book ai didi

java - java MYSQL 删除最后一行

转载 作者:行者123 更新时间:2023-11-29 11:58:59 25 4
gpt4 key购买 nike

我有从数据库中删除行的按钮。我想问一下java中如何删除最后一行?我只知道 resultset 中的方法是 .getLong(1) 但它适用于当前行,即顶行。如何获取 java 结果集中的最后一行?

这是我的代码

try{
koneksi_db();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from line");
rs.next();
long id = rs.getLong(1);
stmt.executeUpdate("DELETE FROM line WHERE UniqueID = '"+id+"'");
}catch(Exception e){
JOptionPane.showMessageDialog(null, "error menghapus line");
}

最佳答案

您必须定义“最后” - 您可以通过对结果进行排序来做到这一点,只需将“order by [column]”添加到查询末尾,并添加“ASC”或“DESC”表示升序或降序。您可以按任意顺序对任何列进行排序,这就是为什么首先定义“最后”记录很重要的原因然后添加一个限制,以便仅返回第一行:“Limit 1”(切换您的顺序,以便这 1 行与您定义的“最后”行相同。然后您可以使用“IN”语句将您的语句与子查询匹配作为删除语句中 where 子句的一部分。这假设没有重复项并删除一条记录。或者您可以使用列的最大/最小值 - 这将删除具有最小/最大值的所有记录(如果有)与您排序所依据的列具有相同最小/最大值的重复记录。

第一种技术 - “WHERE IN”将该列与子查询中的所有结果进行比较 - 这就是我们将子查询的结果限制为一个结果的原因:

DELETE FROM [table] where [column] in (SELECT [column] from [table] order by [column] asc limit 1)

第二种技术是在 IN 子句中使用 min 或 max 函数来执行相同的操作 - 您使用哪一个取决于您如何定义“最后”记录 - 如果您绝对确定没有重复项,那么这会稍微多一些高效。

DELETE FROM [table] where [column] in (SELECT max([column]) from [table])

您可能需要仔细检查我的 SQL 以确保它与 mySQL 兼容,某些数据库使用“IS IN”,但这是基本思想。

关于java - java MYSQL 删除最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com