如何检索数据库中最后输入的列值(MS ACCESS 2007)
我使用了以下代码
String sql = "SELECT Last(RegNumber) FROM Death ";
但它在MS ACCESS中不起作用,当我运行程序时,Error生成为
java.sql.SQLException: Column not found
但我在数据库中创建了一个RegNumber
我正在使用Java进行编程,我使用了这个查询
编辑:
RegNumber是字符串形式,不是整数形式,所以我不能使用DESC或ASC
请帮帮我
答案 0 :(得分:2)
按照您喜欢的标准对表格进行排序,然后使用SELECT TOP 1 * FROM myTable ORDER BY RegNumber ASC
。
或ORDER BY incrementingId DESC
基本上必须有一些逻辑顺序来排序你所谓的“最后输入的列”(我假设它意味着行,而不是列)
编辑:您的功能在Access中是正确的,应该返回正确的值。但Java可能无法正确解释它。在Access本机查询中尝试查询,然后尝试调试Java。如果只是Java不支持此函数,请考虑使用Java.sql中内置的ResultSet()函数
ResultSet rs = ....;
rs.last();
int RegNumber = rs.getRow();
答案 1 :(得分:1)
我不知道last()
中的MS ACCESS
函数,但我有另一个想法:
通常会为每个id
自动生成table
,因此您可以对其进行排序并从结果集中获取第一条记录,如下所示:
SELECT RegNumber
FROM Death
ORDER BY id DESC
答案 2 :(得分:1)
这取决于您的数据库结构。
通常情况下,表会有一些唯一标识符,如果您确定它始终,那么为了数据库,您可以使用函数MAX
来检索标识符,然后检索整行。
另一个场景只是一个描述创建列的时间的时间戳列,如果id
不足够,这种方法是否真的很重要。
答案 3 :(得分:1)
以下将返回最后一个和最新的RegNumber:
SELECT RegNumber FROM Death ORDER BY RegNumber DESC