本文翻譯自官網(wǎng),官網(wǎng)地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/)
語法:
SELECT_clause FROM_clause WHERE <conditional_expression> [(AND|OR) <conditional_expression> [...]]
注:在WHERE子句中,支持在fields, tags, and timestamps上進(jìn)行條件表達(dá)式的運(yùn)算。
注:在InfluxDB的WHERE子句中,不支持使用 OR 來指定不同的time區(qū)間,如下面的sql將會(huì)返回空:
SELECT * FROM "absolutismus" WHERE time = '2016-07-31T20:07:00Z' OR time = '2016-07-31T23:07:17Z'
語法如下:
field_key <operator> ['string' | boolean | float | integer]
在WHERE子句中,支持對(duì)string, boolean, float 和 integer類型的field values進(jìn)行比較。
注意 :在WHERE子句中,如果是string類型的field value,一定要用單引號(hào)括起來。如果不適用引號(hào)括起來,或者使用的是雙引號(hào),將不會(huì)返回任何數(shù)據(jù),有時(shí)甚至都不報(bào)錯(cuò)!
WHERE支持的運(yùn)算符如下:
Operator | Meaning |
---|---|
= | equal to |
<> | not equal to |
!= | not equal to |
> | greater than |
>= | greater than or equal to |
< | less than |
<= | less than or equal to |
支持的更多運(yùn)算符詳見: Arithmetic Operations, Regular Expressions
語法如下:
tag_key <operator> ['tag_value']
對(duì)于在WHERE子句中的tag values,也要用單引號(hào)括起來。如果不用引號(hào)括起來,或者使用雙引號(hào),則查詢不會(huì)返回任務(wù)數(shù)據(jù)。甚至不會(huì)報(bào)錯(cuò)。
Tag支持的運(yùn)算符如下:
Operator | Meaning |
---|---|
= | equal to |
<> | not equal to |
!= | not equal to |
還支持正則運(yùn)算: Regular Expressions
對(duì)于大部分的SELECT 語句來說,默認(rèn)的時(shí)間區(qū)間是1677-09-21 00:12:43.145224194 到 2262-04-11T23:47:16.854775806Z UTC.
對(duì)于有GROUP BY time() 的SELECT 語句,默認(rèn)的時(shí)間區(qū)間是1677-09-21 00:12:43.145224194 UTC 到 now()。
在 Time Syntax 小節(jié)將會(huì)介紹如何在WHERE子句中指定時(shí)間 區(qū)間。
Select data that have specific field key-values
Select data that have a specific string field key-value
Select data that have a specific field key-value and perform basic arithmetic
Select data that have a specific tag key-value
Select data that have specific field key-values and tag key-values
- Select data that have specific timestamps
該sql將查詢h2o_feet中在7天以內(nèi)的所有數(shù)據(jù)
問題 :where子句查詢意外地未返回任何數(shù)據(jù)。
答 :通常情況,出現(xiàn)該問題是因?yàn)樵赪HERE子句中沒有對(duì)tag values或string類型的field values使用單引號(hào)括起來的緣故。對(duì)于WHERE子句中的tag values或string類型的field values,如果沒有用引號(hào)括起來,或者是用的雙引號(hào),這種時(shí)候,查詢不會(huì)返回任何結(jié)果,有時(shí)甚至也不會(huì)報(bào)錯(cuò)。
在下面的示例sql中,對(duì)tag value的引號(hào)使用做說明。第一個(gè)sql沒有對(duì)tag value使用引號(hào),第二個(gè)sql對(duì)tag value使用了雙引號(hào),第三個(gè)sql則對(duì)tag value使用了單引號(hào)。可以看到,第一和第二個(gè)sql都沒有返回任何查詢結(jié)果,而第三個(gè)sql返回了預(yù)期中的結(jié)果。
在下面的sql對(duì)string類型的field value的引號(hào)情況做說明,其中field value為“at or greater than 9 feet”。第一個(gè)sql沒有對(duì)field value使用引號(hào),第二個(gè)sql對(duì)field value使用了雙引號(hào),第三個(gè)sql則對(duì)field value使用了單引號(hào)??梢钥吹?,第一個(gè)sql報(bào)錯(cuò)了,因?yàn)閒ield valus中包含了空格。第二個(gè)sql雖然沒報(bào)錯(cuò),但是查詢結(jié)果為空。第三個(gè)sql返回了預(yù)期中的結(jié)果。
聯(lián)系客服