我在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是标记键。我不知道这是一个错误还是我存储数据的方式。请帮忙
答案 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