Подготовленный оператор для MySQL, чтобы он выбрал строку, содержащую наибольшую метку времени для столбца, которая будет больше от данного параметра? - PullRequest
0 голосов
/ 08 января 2011

Как написать подготовленный оператор Java для MySQL, чтобы он выбирал строку, содержащую наибольшее значение метки времени, из столбца, который был бы больше от данного параметра?

Я дошел до: SELECT * FROM table WHERE timestamp_col = (SELECT MAX (timestamp_col) FROM table)

Но как преобразовать его в подготовленное утверждение?

1 Ответ

1 голос
/ 08 января 2011

Поскольку на самом деле нет параметра, все довольно просто:

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 ().Это совершенно безопасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...