我有一个非常庞大且复杂的MySQL查询,它从Node.JS进程运行,但我收到一个奇怪的错误。
查询大约有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忽略所有换行符和空格。这不是真的吗?有人能指出我正确的方向来解决这个问题吗?
我删除了一些评论,删除了一些空行,我将标签转换为空格。我没有想法。
谢谢,
whiteatom
答案 0 :(得分:0)
错过了查询中的评论。我使用的是 - MySQL注释语法,它注释到行尾。删除换行符时 - 查询在该评论处终止。
感谢您的期待;希望这有助于其他人。