public static void main(String[] args) {

    try{
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/new_database","root","mysql");
    Statement stmt = con.createStatement();
    System.out.println("pass");
    String sql="DELETE FROM user"
            + "WHERE userId='sh123'";
    int rowAffected = stmt.executeUpdate(sql);
    System.out.println("row affected" + rowAffected);
    }
    catch(Exception exc)
    {
        exc.printStackTrace();
    }
}



  看这段代码,很好,它工作正常。但是有一件让我着迷的事情,
  如果我以这种形式编写sql查询,效果很好:-


String sql="DELETE FROM user WHERE userId='sh123'";


但是,如果我以这种形式编写sql查询,则无法正常工作:-

String sql="DELETE FROM user"
        + "WHERE userId='sh123'";


它给出了错误
“您的SQL语法有错误;请在与MySQL服务器版本相对应的手册中找到在第1行的'userId ='sh123'附近使用正确的语法”

给我原因,为什么会发生...

最佳答案

您缺少空格:

String sql="DELETE FROM user "
        + "WHERE userId='sh123'";


您的版本是:

String sql="DELETE FROM userWHERE userId='sh123'";


这在语法上是不正确的。

关于mysql - 为什么在Eclipse中以两种不同方式编写sql查询时会发生这种情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40694818/

10-16 09:55