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/