我一直试图在linux系统中通过nodejs执行mysql查询,但得到了错误。我也启用了multipleStatements: true。以下是我尝试使用的查询部分:
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查询放在BackTicks中来获得它的结果。但是,当我在linux中使用反引号时,它失败了。有人能帮我吗。
发布于 2017-03-01 03:29:53
在看过一些问题之后。我发现我使用的node版本(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";
https://stackoverflow.com/questions/42514638
复制相似问题