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 [重复]