MySQL 语法错误 |您的 SQL 语法有错误;

Posted

技术标签:

【中文标题】MySQL 语法错误 |您的 SQL 语法有错误;【英文标题】:MySQL Syntax error | You have an error in your SQL syntax; 【发布时间】:2020-01-28 16:44:52 【问题描述】:

错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“lock WHERE player='SrLolok”附近使用的正确语法

代码:

PreparedStatement search = instance.getConnection().prepareStatement("SELECT * FROM lock WHERE player=?;");
search.setString(1, player);
ResultSet rs = search.executeQuery();

【问题讨论】:

您收到的错误消息有一个很大的线索,即问题出在“lock”这个词上,因为它是它在查询中向您显示的第一部分:...syntax to use near 'lock WHERE ...。 “near”之后的部分通常可以很好地表明您做错了什么。 【参考方案1】:

lock 是 reserved word in MySQL。

如果要使用,需要用反引号括起来:

SELECT * FROM `lock` WHERE player=?

或者更好的是,使用与保留字不对应的表名,因此您不必担心这一点。

【讨论】:

以上是关于MySQL 语法错误 |您的 SQL 语法有错误;的主要内容,如果未能解决你的问题,请参考以下文章

语法错误或访问冲突:1064 您的 SQL 语法有错误;对应于正确语法的 MySQL 服务器版本

SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ')' 附近使用的正确语法

“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法错误”Hibernate 4 [重复]