使用 kusto 查询语言查找列等于字符串 A 或字符串 B 的所有记录
Find all records where a column is either equal to string A or string B using kusto query language
我需要在 table 中找到所有记录,其中一列 CounterName
包含某种字符串,而另一列 InstanceName
的值等于任一字符串 C:
或字符串 D:
.
下面的查询工作正常并且 returns 所需的 records/results:
Perf
| search CounterName:"Free*bytes" and (InstanceName=="C:" or InstanceName=="D:")
但是,在上面的查询中,我们需要重复InstanceName
两次。所以我尝试了另一个查询(在下面共享),它试图做同样的事情,但它没有return任何记录(没有找到结果):
Perf
| search CounterName:"Free*bytes" and InstanceName==("C:" or "D:")
为什么第二个查询 return 没有任何结果?是因为表达式 ("C:" or "D:")
会计算为布尔值吗?
有没有一种方法可以在一列中搜索多个字符串( 和 select 该记录是否存在任何字符串)而不必重复列名 ( 就像我们不得不在第一个查询中重复一样)?
如果需要,我们可以 运行 在演示部分 Log Analytics 在线查询上述内容(但是,它可能需要登录)。
or
运算符旨在与布尔表达式一起使用。将它与字符串一起使用不会评估一个结果或另一个结果。
要实现您的要求,请尝试使用 in
运算符。
Perf
| search CounterName:"Free*bytes" and InstanceName in ("C:","D:")
我需要在 table 中找到所有记录,其中一列 CounterName
包含某种字符串,而另一列 InstanceName
的值等于任一字符串 C:
或字符串 D:
.
下面的查询工作正常并且 returns 所需的 records/results:
Perf
| search CounterName:"Free*bytes" and (InstanceName=="C:" or InstanceName=="D:")
但是,在上面的查询中,我们需要重复InstanceName
两次。所以我尝试了另一个查询(在下面共享),它试图做同样的事情,但它没有return任何记录(没有找到结果):
Perf
| search CounterName:"Free*bytes" and InstanceName==("C:" or "D:")
为什么第二个查询 return 没有任何结果?是因为表达式 ("C:" or "D:")
会计算为布尔值吗?
有没有一种方法可以在一列中搜索多个字符串( 和 select 该记录是否存在任何字符串)而不必重复列名 ( 就像我们不得不在第一个查询中重复一样)?
如果需要,我们可以 运行 在演示部分 Log Analytics 在线查询上述内容(但是,它可能需要登录)。
or
运算符旨在与布尔表达式一起使用。将它与字符串一起使用不会评估一个结果或另一个结果。
要实现您的要求,请尝试使用 in
运算符。
Perf
| search CounterName:"Free*bytes" and InstanceName in ("C:","D:")