簡體   English   中英

使用JDBC / MySQL的SELECT語句中的數學表達式

[英]Math Expression in SELECT statement using JDBC/MySQL

我編寫了一個使用聯接和子查詢的MySQL查詢,最后在最外層的SELECT語句中獲取所需的列。 它類似於:

SELECT X,Y,Z
FROM
(SELECT A,B,C,X 
FROM T1 
JOIN
(SELECT D,E,F,Y
FROM T2) ALIAS ON CONDITION....

等等等等。 現在,我想做Z/Y ,所以我做了

SELECT X,Y,Z,Z/Y
FROM
YADA YADA YADA

這在MySQL中有效,但是當我在Java程序中執行相同操作時,會引發錯誤,並說:

You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near 'Z/Y'

我該如何克服這個問題?

原來,我忘了在倒數第二欄中添加逗號,這是導致問題的原因。 感覺像個傻瓜!

是的,你是。 我也是如此。從好的方面來說,至少我必須重置我的oracle帳戶上的密碼。

import java.sql.*;

public class TwoAndTwo {
  private Connection connect = null;
  private Statement statement = null;
  private PreparedStatement preparedStatement = null;
  private ResultSet resultSet = null;

  public void readDataBase() throws Exception {
    try {
      Class.forName("com.mysql.jdbc.Driver");
      connect = DriverManager
          .getConnection("jdbc:mysql://localhost/foobar?"
              + "user=root&password=root");

      statement = connect.createStatement();
      resultSet = statement
          .executeQuery("select 2+2 as computation");

      resultSet.next();
      System.out.println( resultSet.getString("computation"));
    } catch (Exception e) { throw e; } finally { close(); }
  }
  private void close() {
    try { if (resultSet != null) { resultSet.close(); }
      if (statement != null) { statement.close(); }
      if (connect != null) { connect.close(); }
    } catch (Exception e) {
      e.printStackTrace(); }
  }
  public static void main(String[] argv) {
      TwoAndTwo tnt = new TwoAndTwo();
      try { tnt.readDataBase();
      } catch (Exception e) {
          System.out.println(e.getMessage());
          e.printStackTrace();
      }
  }
}

產量

$ javac TwoAndTwo.java 

$ java -cp mysql-connector-java-5.1.29-bin.jar:.  TwoAndTwo 
4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM