如何为 MySQL 编写 Java 准备语句,以便它从给定参数较大的列中选择包含最高时间戳值的行?
我得到了: SELECT * FROM 表 WHERE timestamp_col=(SELECT MAX(timestamp_col) FROM 表)
但是如何将其转换为准备好的语句呢?
最佳答案
由于没有真正的参数,所以非常简单:
Connection con = null;
PreparedStatement prest;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://<server>:3306/<db>","<login>","<pass>");
try{
String sql = "SELECT * FROM table WHERE timestamp_col=(SELECT MAX(timestamp_col) FROM table)";
prest = con.prepareStatement(sql);
// prest.setInt(1,12000); // example of using a parameter for prepared statement
// parameters go in the SQL as ?
ResultSet rs1 = prest.executeQuery();
} catch( SQLException s ) { /* etc */ }
如果您只是要求 MAX(),则不需要参数。这是绝对安全的。
关于java - MySQL 的准备语句,以便它会选择包含最高时间戳的行,该列将比给定参数更大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632547/