非常に大きくて複雑なMySQLクエリがNode.JSプロセスから実行されますが、奇妙なエラーが発生します。大規模なsqlクエリは、改行が削除されたときにエラーを発生させます。
クエリは約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つのクエリ(ソースは\ removedと出力の場合)を実行することにしました。唯一の違いは改行です。ソースに改行があり、出力はありません。私はまた、このアプリの簡単なクエリが機能するので、これを引き起こすこのクエリに何かがあることに注意する必要があります。
改行が削除されたときに、MySQLクエリにどのような変更が発生する可能性がありますか?私が気づいていないラインやスペースには限界がありますか?私の理解では、MySQLはすべての改行と空白を無視します。これは本当ですか?誰かがこれを撃つのに正しい方向に私を指摘できますか?
私は削除したいくつかのコメントがあった、私は削除した空白行があった、私はスペースにタブを変換..私はアイデアがありません。
おかげで、
誠に申し訳ございませんが、選択したクエリを一目で把握することなく、本当に難しいでしょう。上記のエラーは全く説明できません。可能であれば、いくつかの行でクエリを簡略化して、ここに入れてください。 –
これは最大の問題です。単純なクエリでは問題はありません。それは約20のサブクエリであり、私は誰もそれを見抜くことを期待しません。私はエラーが役に立たないことを知っているので、少しの方向性を求めているのです.....( – whiteatom
これはユーザーエラーでした..私はそれらを "すべて"削除したときにコメントが間違っています。残りの行をコメントアウトします。改行が削除されたときに残りのクエリを削除します。 – whiteatom