我正在查询潮D.B.如下图所示,
select * from measurement where '/cda/stats/@name' =~ /cda\/stats.*/ limit 5;
上面的查询工作正常,但是当我尝试在查询字符串中指定方括号时,例如, "/cda/stats/[name='set']
select * from mgmgrand where '/cda/stats/@name' =~ /cda\/stats[name='set'].*/ limit 5;
不确定在上述查询中如何转义方括号。
反斜杠“ \”不适用于方括号。
答案 0 :(得分:1)
我在influx DB中进行了测试,发现了一个奇怪的解决方案(我不知道为什么会这样)。
如果您的标识符未加引号,则将单引号更改为双引号,将'/cda/stats/@name'
替换为"/cda/stats/@name"
似乎可以解决问题。
select * from mgmgrand where "/cda/stats/@name" =~ /\[/
//matches the value /cda/stats/[name='set']
在不更改引号的情况下,不带[的值也可以正常工作,但是在尝试匹配[字符时则不起作用。
select * from mgmgrand where '/cda/stats/@name' =~ /cda/
//matches the value /cda/stats/[name='set']
select * from val1 where '/cda/stats/@name' =~ /\[/
//does not give an output
如果您使用带引号的标识符将'/cda/stats/@name'
替换为"'/cda/stats/@name'"
或"\"/cda/stats/@name\""
,则会对其进行修复。