2017-02-28 5 views
0

Linuxシステムでnodejsを使ってmysqlクエリを実行しようとしましたが、エラーが発生しました。私はmultipleStatementsを有効にしました:trueも。私はバッククォートでそれを置くことによって、この大きなSQLクエリの結果を達成することができました50行のクエリを持つノードjsに複数行のmysqlクエリ文を実行するには

私のWindowsで
select 
c.name as "Name", 
cl.u_geographic_region as "Region", 
CASE 
WHEN cic.os like '%Windows%' THEN 'Windows' 
WHEN cic.os like '%aix%' THEN 'AIX' 
WHEN cic.os like '%esx%' THEN 'ESX' 
WHEN cic.os like '%linux%' THEN 'Linux' 
WHEN cic.os like '%solaris%' THEN 'Solaris' 
ELSE 'UNKNOWN' 
END as "Operating System", 
ci.dns_domain as "Host domain", 
ci.ip_address as "IP Address", 
from 
cmdb as c 
join cmdb_ci ci on c.sys_id = ci.sys_id 

ラップトップ: は、ここで私が使用しようとしていますクエリの一部です。しかし、私はLinuxのバックティックを使用すると失敗します。誰でも助けてくれますか?

+0

あなたは、これが役に立つかもしれません:http://stackoverflow.com/questions/6220420/how-do-i-do-a-multi-line-string-in-node-js – tier1

+0

だから今がすべき各行の最後に\を付けていますか?それでもうまくいきません。使用しているノードのバージョンはv0.10.31です。 –

+0

@ tier1 - ありがとうございました。それは働いて、mysqlデータベースからデータを引き出すことができます。 –

答えて

1

質問のいくつかを実行した後。私が使用していたノードのバージョン(v0.10.32)がバッククォート( `)を読み取ることができなかったことが分かりました。私はバッククイックを使ってv6でスクリプトをテストしたところ、完全に機能しました。だから私は\ n私のクエリのすべての行の後に与え、それは働いた。以下は更新されたクエリです。

"select c.name as 'Name',\n"+ 
"cl.u_geographic_region as 'Region',\n"+ 
"CASE\n"+ 
"WHEN cic.os like '%Windows%' THEN 'Windows'\n"+ 
"WHEN cic.os like '%aix%' THEN 'AIX'\n"+ 
"WHEN cic.os like '%esx%' THEN 'ESX'\n"+ 
"WHEN cic.os like '%linux%' THEN 'Linux'\n"+ 
"WHEN cic.os like '%solaris%' THEN 'Solaris'\n"+ 
"ELSE 'UNKNOWN'\n"+ 
"END as 'Operating System',\n"+ 
"ci.dns_domain as 'Host domain',\n"+ 
"ci.ip_address as 'IP Address',\n"; 
関連する問題