即时通讯使用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
仅将返回CONTRACTDATE
(2015-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/