Influxdb 如何组合匹配多个标记值的查询?

Influxdb 如何组合匹配多个标记值的查询?,influxdb,Influxdb,我想知道最好的方法是编写一个WHERE子句来匹配标记的多个值。我的印象是,我可以使用正则表达式模式解决这个问题,但我似乎遇到了麻烦。我的查询中返回的数据太多 在我的例子中,我有几个带有“location\u id”标签的测量值 当我使用下面这样的where子句创建查询时,我得到的数据是不正确的。可能是因为我对如何使用正则表达式模式的误解,或者可能是不可能的 我的数据如下 time cpu location_id ---- ----

我想知道最好的方法是编写一个WHERE子句来匹配标记的多个值。我的印象是,我可以使用正则表达式模式解决这个问题,但我似乎遇到了麻烦。我的查询中返回的数据太多

在我的例子中,我有几个带有“location\u id”标签的测量值

当我使用下面这样的where子句创建查询时,我得到的数据是不正确的。可能是因为我对如何使用正则表达式模式的误解,或者可能是不可能的

我的数据如下

time                 cpu  location_id
----                 ---- -----------
2017-11-27T07:00:00Z 159  2
2017-11-27T15:00:00Z 154  27
2017-11-27T23:00:00Z 117  7
2017-11-28T07:00:00Z 160  7
2017-11-28T15:00:00Z 167  27
2017-11-28T23:00:00Z 170  27
执行查询时,我只希望返回值为“7”的位置。 但是当我使用下面这样的查询时,来自位置\u id 27的数据也会返回

从“测量”中选择*,其中位置_id=~/7/

我的目标是指出location_id应该在值列表中。这在正则表达式中是可能的吗?还是应该使用和子句


从“测量”中选择*,其中位置id=~/7 | 2 | 104 | 45/

这在正则表达式中是可能的(尽管只适用于字符串标记/字段)。首先,回想一下regex
/7/
与输入文本中的任何字符
7
匹配。因此,“7”和“27”都匹配

若要约束匹配以覆盖整个输入文本,请将其包装在文本开始标记
^
和文本结束标记
$
中。例如,正则表达式
/^7$/
将只匹配字符串“7”,而不匹配其他内容

要匹配多个完整字符串,请使用正则表达式或运算符
|
。但是请记住,它的运算符优先级低于复合运算符,这意味着必须将子表达式括在括号中。例如,
/^(7 | 2 | 104 | 45)$/
将与“7”、“2”、“104”或“45”匹配


有关更多详细信息,请参阅文档。

这在正则表达式中是可能的(尽管只适用于字符串标记/字段)。首先,回想一下regex
/7/
与输入文本中的任何字符
7
匹配。因此,“7”和“27”都匹配

若要约束匹配以覆盖整个输入文本,请将其包装在文本开始标记
^
和文本结束标记
$
中。例如,正则表达式
/^7$/
将只匹配字符串“7”,而不匹配其他内容

要匹配多个完整字符串,请使用正则表达式或运算符
|
。但是请记住,它的运算符优先级低于复合运算符,这意味着必须将子表达式括在括号中。例如,
/^(7 | 2 | 104 | 45)$/
将与“7”、“2”、“104”或“45”匹配


有关更多详细信息,请参阅文档。

工作完美无瑕!谢谢你的回复。工作完美无瑕!谢谢你的回复。