即时通讯使用Netbeans IDE 8.0.2。

这是我在phpMyAdmin中的示例表:

COMPANYNAME          CONTRACTNAME        CONTRACTDATE       PRICEOFCONTRACT
A                    REPAIR              2015 August 1       $100,00
B                    NEW TOOL            2015 December 13    $250,00
C                    COMPLAINING         2015 August 2       $0


这是我的剧本

try {
    String sql = "select min(CONTRACTDATE) from mysecrettable";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();

    if(rs.next()) {
        InputStream stream = rs.getBinaryStream(1);

        String add1 = rs.getString("min(CONTRACTDATE)");
        System.out.println(add1);
    }


我发现CONTRACTDATE的日期是最小值。因此,表中的最小值是2015年8月1日。

我需要脚本来显示所有粘贴在CONTRACTDATE最小值行中的数据,
这是:

A, REPAIR, 2015 August 1, $100,00


对不起,我的英语不好,我是使用JAVA和phpMyAdmin的初学者:-),在此先感谢

最佳答案

首先,您需要学习一些基本的SQL,select min(CONTRACTDATE) from mysecrettable仅将返回CONTRACTDATE2015-08-01)的最小值,而不会返回其他列。

基本上,您需要让数据库“选择符合以下条件的以下列”,类似...

select * from mysecrettable where CONTRACTDATE in (select min(CONTRACTDATE) from mysecrettable)


这将返回表mysecrettable中的所有列,其中CONTRACTDATE与查询select min(CONTRACTDATE) from mysecrettable的任何结果匹配

一个很好的起点可能是w3shchool's SQL Tutorial

一旦有了,就需要处理可能的结果

try (Connection con = DriverManager.getConnection(url)) {

    try (PreparedStatement stmt = con.prepareStatement("select * from mysecrettable where CONTRACTDATE in (select min(CONTRACTDATE) from mysecrettable)")) {

        try (ResultSet rs = stmt.executeQuery()) {

            System.out.printf("%-20s | %-20s | %-10s | %s%n",
                            "Company Name",
                            "Contract Name",
                            "Date",
                            "Price");
            while (rs.next()) {

                String companyName = rs.getString("COMPANYNAME");
                String contractName = rs.getString("CONTRACTNAME");
                java.sql.Date contractDate = rs.getDate("CONTRACTDATE");
                long priceOfContract = rs.getLong("PRICEOFCONTRACT");

                System.out.printf("%-20s | %-20s | %-10s | %s%n",
                                companyName,
                                contractName,
                                new SimpleDateFormat("dd/MM/yyyy").format(contractDate),
                                NumberFormat.getCurrencyInstance().format(priceOfContract));

            }

        }

    }
}


这将打印类似...

Company Name         | Contract Name        | Date       | Price
A                    | Repair               | 01/08/2015 | $10,000.00


JDBC Database Access中有更详细的介绍

关于java - netbeans显示/打印受min函数影响的mySQL数据行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31690281/

10-10 19:13