2017-02-28 23 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";