我一直在尝试通过linux系统中的nodejs执行一个mysql查询,但是确定错误。我启用了multipleStatements:也是。 以下是我尝试使用的查询部分:
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笔记本电脑中,我能够通过将它放在BackTicks中来实现这个大sql查询的结果。但是当我在linux中使用反引号时,它失败了。任何人都可以帮助我。
答案 0 :(得分: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";