关于Influxdb中标记键的where子句不起作用

时间:2016-01-28 14:48:24

标签: influxdb

我在0.9.6.1中看到了一些奇怪的行为。问题是当我查询没有where子句的字段时,它可以工作但是当我在语句中为标记键添加“WHERE”时,它会给我空结果。

为前,

select successful, merchant_id from session_metrics_new limit 5

name: session_metrics_new

time                    successful      merchant_id
1453975732000000000     1               bms
1453975733000000000     1               snp
1453975735000000000     1               bms
1453975735000000000     1               snp
1453975739000000000     1               bms

但这不起作用

select successful, merchant_id from session_metrics_new where merchant_id =~ /bms/ limit 5

这里,成功是字段键,而merchant_id是标记键。我不知道这是一个错误还是我存储数据的方式。请帮忙

1 个答案:

答案 0 :(得分:2)

您正在使用regex syntax

我尝试使用您使用的相同语法对我的数据库进行查询,并且我得到了一个没有问题的结果集。我看到的唯一问题是,如果成功也是TAG而不是FIELD。但在这种情况下,您应该得到以下异常:

  

服务器返回错误:语句必须在select子句

中至少有一个字段

您是通过InfluxDb管理界面还是通过第三方库执行此查询,例如Java,C#,NodeJ或类似内容?

如果你认为你一直都知道merchant_id字段的全部价值,那么尝试一个简单的where clause,它会略有不同(它不进行模式匹配,但它匹配来自字段的整个值),这应该工作,它甚至应该更快:

select successful, merchant_id from session_metrics_new where merchant_id = 'bms' limit 5