0

我有一个从 Node.JS 进程运行的非常大且复杂的 MySQL 查询,但我遇到了一个奇怪的错误。

查询大约有 150 行 SQL 代码,所以我不打算包含它,但我知道它很好。它在 JS 源代码中写为变量,每行末尾带有 \ 以继续字符串。如果我从源中复制 SQL 并删除 \s 它运行完美。但是,当我通过应用程序运行它时,我会感到害怕:

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

'' 在我查询的巨大单行中的任何位置 - 感谢 MySQL。

当我让应用程序将 SQL 输出到屏幕并复制并粘贴它时,我在 MySQL 中遇到了同样的错误。我决定通过 diff 运行 2 个查询(删除时的源和输出),唯一的区别是换行符 - 源有换行符,而输出没有。我还应该注意,这个应用程序中更简单的查询确实有效,所以这个查询中有一些东西导致了这种情况。

删除换行符后,MySQL 查询可能会发生什么变化?是否有一些我不知道的行或空格限制?我的理解是 MySQL 会忽略所有换行符和空格。这不是真的吗?有人能指出我正确的方向来解决这个问题吗?

我删除了一些评论,删除了一些空白行,我将制表符转换为空格..我没有想法。

谢谢,

白原子

4

1 回答 1

0

错过了查询中的评论。我使用的是 -- MySQL 注释语法,它注释到行尾。删除换行符后 - 查询在该注释处终止。

感谢收看;希望这对其他人有帮助。

于 2012-04-30T02:00:12.700 回答