2017-02-28 50 views
0

我一直試圖通過linux系統中的nodejs執行mysql查詢,但是發現錯誤。我已啓用multipleStatements:也是如此。 下面是該查詢我想使用的部分:如何在具有50行查詢的節點js中執行多行mysql查詢語句

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 

在我的Windows筆記本電腦我能夠把它在反引號來實現這一大的SQL查詢的結果。但是當我在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";