我需要在表中查找所有记录,其中列CounterName
之一包含某种字符串,而另一列InstanceName
的值等于字符串C:
或字符串D:
。
以下查询正常工作,并返回所需的记录/结果:
Perf
| search CounterName:"Free*bytes" and (InstanceName=="C:" or InstanceName=="D:")
但是,在上面的查询中,我们需要重复InstanceName
两次。因此,我尝试了另一个查询(在下面共享的),该查询尝试执行相同的操作,但是它不返回任何记录(未找到结果):
Perf
| search CounterName:"Free*bytes" and InstanceName==("C:" or "D:")
第二个查询为什么不返回任何结果?是因为表达式("C:" or "D:")
的计算结果是布尔值?
有没有一种方法可以搜索列中的多个字符串(,如果有任何字符串,则选择该记录),而不必重复列名称(,就像我们不得不在其中重复一样)第一个查询)?
如果需要,我们可以在演示部分的Log Analytics上在线运行以上查询(,但可能需要登录)。
答案 0 :(得分:2)
or
运算符旨在与布尔表达式一起使用。将它与字符串一起使用不会评估一个结果或另一个结果。
要满足您的要求,请尝试使用in
运算符。
Perf
| search CounterName:"Free*bytes" and InstanceName in ("C:","D:")