WHERE 语法

最近更新时间:2024-08-15 09:57:01

我的收藏
WHERE 用于提取那些满足指定条件的日志。

语法格式

* | SELECT 列名(KEY) WHERE 列名(KEY) 运算符 值
运算符可以是=<>><>=<=BETWEENINLIKE
注意
SQL 中的过滤功能相比检索条件性能较差,建议尽可能地使用检索条件满足数据过滤需求,例如使用status:>400 | select count(*) as logCounts代替* | select count(*) as logCounts where status>400 以更快地获得统计结果。
WHERE 中不能使用 AS 别名,例如level:* | select level as log_level where log_level='ERROR',该语句执行会报错,因为其不符合 SQL-92规范。

语法示例

从日志数据中查询状态码大于400的日志:
* | SELECT * WHERE status > 400
从日志数据中查询请求方式为 GET 且客户端 IP 为 192.168.10.101 的日志条数:
* | SELECT count(*) as count WHERE method='GET' and remote_addr='192.168.10.101'
统计 URL 后缀为 .mp4 的平均请求大小:
* | SELECT round(sum(body_bytes_sent) / count(body_bytes_sent), 2) AS avg_size WHERE url like '%.mp4'