java - SQL 语句在空表上返回一个结果集

标签 java mysql sql derby

        String sql = "Select MAX(ORDERLINEID) From ORDERLINESTABLE";
        ResultSet rst;
        rst = stmt.executeQuery(sql);

        if(rst.next())
        {
            next = rst.getInt("ORDERLINEID");
            next++;
        }

我的数据库中有一个名为 ORDERLINESTABLE 的表,该表目前是空的。我运行上面的代码的目的是获取存储在 ORDERLINEID 列中的最大整数,这样我就可以在向数据库添加项目时增加它。

我预计此查询不会返回任何内容,因为表是空的,但在调试时我注意到搜索为 rst.next() 方法返回 true。

有人知道为什么会这样吗?我查看了 resultset.next() 文档,据我所知它应该返回 false。

最佳答案

如有疑问,请查看您的数据。这是来自任何数据库引擎的示例查询。

select max(field) maxValue
from table
where 1=3

它会产生

maxValue
Null

换句话说,您的查询返回一条值为 null 的记录。

关于java - SQL 语句在空表上返回一个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286857/

相关文章:

mysql - 执行UNION select获取数据来自哪个表

asp.net - 将 SQL 数据库导出到 Access - ASP.NET

sql - PL/SQL oracle 函数与 ora-01744 INTO

java - SHA-1 需要多长时间来创建哈希?

php - 将多个复选框值插入 MySQL

C# MySQL 连接池

SQL Server 到 mySQL 转换器

java - 重启设备后如何使用bootreciever设置壁纸? (安卓, eclipse )

java - 通过一个简单的例子理解死锁

java - GWT RPC 未生成正确的 gwt.rpc 文件