2

我正在尝试从一个表中进行选择,该表适用于我的数据库中的所有其他表,但是当我尝试以下操作时,我收到一个错误:

db.makeQuery("SELECT * FROM References");

哪个电话:

public ResultSet makeQuery(String query) throws Exception
{
    preparedStatement = connect.prepareStatement(query);
    resultSet = preparedStatement.executeQuery(query);
    return resultSet;

}

然后它会抛出以下错误:

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 'References' at line 1

我觉得我很奇怪,因为这个陈述有效:

db.makeQuery("select * from Products");
4

3 回答 3

8

References是 SQL 中的关键字,因此您最好避免在表名中使用它。(例如参见本文档。)

正如 Nishant 所建议的,如果您使用反引号对保留字进行转义,则可以在查询中使用保留字。

相关问题:

于 2012-07-05T12:10:23.293 回答
6

采用

 db.makeQuery("SELECT * FROM `References`");

如果可以,最好避免使用 MySQL 关键字的名称。正如aioobe所建议的那样

于 2012-07-05T12:11:22.123 回答
0

您可能拼错了表格的名称。当 MySQL 找不到您所指的那个表时,它会给出这个错误。

Use SHOW TABLES; to see the names of the tables in your database, and double-check the name.

于 2012-07-05T12:11:50.973 回答