有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取列的最后一个值

如何检索数据库中最后输入的列值(MS ACCESS 2007)

我使用了以下代码

String sql = "SELECT Last(RegNumber) FROM Death ";

但它在MS ACCESS中不起作用,当我运行程序时,会产生如下错误:

java.sql.SQLException: Column not found

但我在数据库中创建了一个列RegNumber

我正在使用Java进行编程,其中我使用了这个查询

编辑:

RegNumber是字符串形式而不是整数形式,因此我不能使用DESC或ASC

请帮帮我


共 (4) 个答案

  1. # 1 楼答案

    根据您喜欢的标准对表进行排序,并使用SELECT TOP 1 * FROM myTable ORDER BY RegNumber ASC

    或者ORDER BY incrementingId DESC

    基本上,对于您所说的“最后输入的列”(我假设它是指行,而不是列),排序必须有一定的逻辑顺序

    编辑:你的函数在Access中是正确的,应该返回正确的值。然而,Java可能无法正确解释它。在Access原生查询中尝试查询,然后尝试调试Java。如果java不支持这个函数,那么考虑使用java中的内置结果()函数。sql

    ResultSet rs = ....;
    rs.last();
    int RegNumber = rs.getRow();
    
  2. # 2 楼答案

    下面将返回最后一个和最新的RegNumber:

    SELECT RegNumber FROM Death ORDER BY RegNumber DESC
    
  3. # 3 楼答案

    这取决于您的数据库结构

    通常,在表中会出现一些唯一标识符,如果您确定它总是出现在数据库中,那么可以使用函数MAX来检索标识符,然后检索整行

    另一种情况是只对描述列创建时间的列添加时间戳,如果序列真的很关键,那么这种方法就满足了id应该足够了

  4. # 4 楼答案

    我不知道MS ACCESS中的last()函数,但我有另一个想法:

    通常每个table都会自动生成一个id,因此您可以对其进行排序,并从结果集中获得第一条记录,如下所示:

    SELECT RegNumber
    FROM Death 
    ORDER BY id DESC