-5

我有一个包含这么多值的数据库。如何使用查询删除指定的行。

我正在使用以下查询进行删除。我想在列名=用户名的帮助下删除一行。(用户名=示例)。

但是表中不存在名为行的示例。显示错误if exist。对此的任何查询

 preparedStatement = (PreparedStatement) connection.prepareStatement("DELETE FROM users  WHERE IF EXISTS user_name=example");
         preparedStatement.executeUpdate();

当我尝试编译时出现以下错误

 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'EXISTS user_name='example'' at line 1
4

3 回答 3

4
  • 消除IF EXISTS
  • 使用user_name='example'(带引号)甚至更好地user_name=?使用 PreparedStatement
  • 利用preparedStatement.executeUpdate()

即使没有结果,它也不应该抛出任何错误

于 2013-08-13T06:57:01.153 回答
0

我认为您只是忘记了跨越字符串文字“示例”的撇号:

DELETE FROM users WHERE user_name='example'.

这里不需要'WHERE EXISTS'!

问候

克里斯托弗

于 2013-08-13T06:54:07.953 回答
0

我以这种方式在我的计算机上尝试过并且工作正常

PreparedStatement pt =con.prepareStatement("DELETE FROM users  WHERE IF EXISTS user_name='"+"example'");
pt.executeUpdate();

我做了一个临时表并运行它

于 2013-08-13T06:54:32.250 回答