使用 Accounts.UUID 和 UUID = 时的 MySQL 语法问题,有两个表
Posted
技术标签:
【中文标题】使用 Accounts.UUID 和 UUID = 时的 MySQL 语法问题,有两个表【英文标题】:MySQL Syntax Issue when using Accounts.UUID AND UUID =, with two tables 【发布时间】:2019-01-23 19:29:17 【问题描述】:我在使用这个时遇到了问题:
WARN 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 'WHERE Accounts.UUID = WarAccounts.UUIDAND Accounts.UUID = 'c7a00fe7-826d-46da-b4' at line 1
这里是 SQL:
SELECT
*
FROM
Accounts,
WarAccounts
WHERE
Accounts.UUID = WarAccounts.UUID
AND Accounts.UUID = ?
(使用准备好的语句)
我很困惑这是什么问题导致了这个问题,我用谷歌搜索了它但找不到任何东西,因为这似乎是正确的方法。
服务器类型:MySQL 服务器版本:5.5.58-0ubuntu0.14.04.1 - (Ubuntu)
【问题讨论】:
Accounts.UUID = WarAccounts.UUIDAND Accounts.UUID = 不是这样,它们在不同的行上。 同样,UUIDAND 之间不需要空格。只需阅读您的异常警告...将String
打印到控制台并查看发生了什么。如果你得到 UUID AND,我帮不了你
谢谢,但没有用。
对不起。我希望你能得到正确的答案。祝你好运,朋友
【参考方案1】:
野驴猜测:
在 C# 中我会这样做:
string query = "SELECT *" +
"FROM MYTABLE" +
"WHERE 1=1"
..得到你的错误..
连接字符串,你会看到问题:
"SELECT *FROM MYTABLEWHERE 1=1"
连接应该是:
string query = "SELECT * " +
"FROM MYTABLE " +
"WHERE 1=1 "
(看到每行末尾的空格吗?)
【讨论】:
@Archie:发布您的真实代码。您在构建查询时肯定遇到了问题。以上是关于使用 Accounts.UUID 和 UUID = 时的 MySQL 语法问题,有两个表的主要内容,如果未能解决你的问题,请参考以下文章