文档说明

WHERE 子句

使用 WHERE 子句根据 字段值标签值时间戳 过滤数据。

语法

SELECT_clause FROM_clause WHERE <conditional_expression> [(AND|OR) <conditional_expression> [...]]
  • 条件表达式:两个操作数之间的比较,结果为 truefalse。比较逻辑由表达式中使用的 运算符 决定。这些表达式可以对 InfluxDB 字段、标签和时间戳进行操作。使用逻辑运算符(ANDOR)将多个条件表达式连接起来。

运算符

运算符评估两个操作数之间的关系,并返回 truefalse

比较运算符

运算符含义支持的数据类型
=等于所有
<>不等于所有
!=不等于所有
>大于数字、时间戳
>=大于或等于数字、时间戳
<小于数字、时间戳
<=小于或等于数字、时间戳
=~匹配正则表达式字符串
!~不匹配正则表达式字符串

逻辑运算符

运算符含义
AND如果两个操作数都为 true,则返回 true。否则,返回 false
OR如果任一操作数为 true,则返回 true。否则,返回 false

时间范围

使用 WHERE 子句指定查询的时间范围。如果在 WHERE 子句中没有指定时间范围,则使用 默认时间范围

时间戳存储在 time 列中。使用比较运算符将 time 列的值与时间戳文字、整数(Unix 纳秒时间戳)或 表达式 进行比较。

WHERE
  time >= '2023-01-01T00:00:00Z'
  AND time < '2023-07-01T00:00:00Z'
WHERE
  time >= 1672531200000000000
  AND time < 1688169600000000000
WHERE
  time >= now() - 1d
  AND time < now()

有关在 WHERE 子句中指定替代时间范围的详细信息,请参阅 时间语法

正则表达式

可以使用正则表达式通过正则表达式比较运算符在 WHERE 子句中评估 字符串 值。

  • =~: 匹配正则表达式
  • !~: 不匹配正则表达式
SELECT * FROM home WHERE room =~ /^K/

有关 InfluxQL 正则表达式语法的更多信息,请参阅 InfluxQL 正则表达式

WHERE 子句示例

以下示例使用 入门家居传感器示例数据集

根据特定标签值选择数据

从特定时间范围选择数据

从相对时间范围选择数据

选择高于阈值的字段值

选择特定字段值

根据算术选择字段值

选择字段值高于阈值且具有特定标签值的数据

根据列之间的关系选择数据

显著行为

单引号和双引号

In InfluxQL 中,单引号 (') 和双引号 (") 的作用不同,可能会改变 WHERE 子句的功能。单引号用于 字符串时间戳 文字。双引号用于引用 标识符(时间、字段和标签列名)。

以下条件表达式比较 location 的值与 文字字符串 London

"location" = 'London'

以下条件表达式比较 location 的值与 London 的值

"location" = "London"

WHERE 子句中误用双引号和单引号通常会得到意外的空查询结果。有关引号的更多信息,请参阅 InfluxQL 引号

无法查询多个时间范围

InfluxDB 不支持在 WHERE 子句中使用 OR 来查询多个时间范围。例如,以下查询没有返回结果

SELECT *
FROM home
WHERE
  (time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T10:00:00Z')
  OR (time >= '2022-01-01T18:00:00Z' AND time <= '2022-01-01T20:00:00Z')

这个页面有帮助吗?

感谢您的反馈!


Flux的未来

Flux将进入维护模式。您可以继续使用它,无需更改您的代码。

阅读更多

InfluxDB v3增强和InfluxDB Clustered现已正式发布

新功能包括更快的查询性能和管理工具,推动了InfluxDB v3产品线的进步。InfluxDB Clustered现已正式发布。

InfluxDB v3性能和功能

InfluxDB v3产品线在查询性能方面取得了重大提升,并提供了新的管理工具。这些增强包括用于监控InfluxDB集群健康状况的操作仪表板、InfluxDB云专用中的单点登录(SSO)支持以及针对令牌和数据库的新管理API。

了解新的v3增强


InfluxDB Clustered正式发布

InfluxDB Clustered现已正式发布,为您在自管理堆栈中提供InfluxDB v3的功能。

与我们谈论InfluxDB Clustered