使用查询分析语句查询日志时,在一些情况下需要添加引号,例如字段名、表名等专有名词中存在空格。本文介绍如何在查询分析语句中使用引号。
在查询语句中使用引号
说明
当字段名或字段值中存在特殊字符(空格、中文等)、语法关键词(and、or等)等内容时,需要使用双引号("")包裹。查询语法的说明和更多示例,请参见查询语法结构。
示例
查询
request method
字段值中包含PUT
的日志。字段名request method
中存在空格,需使用双引号("")包裹。"request method":PUT
查询
remote_user
字段值为空的日志。remote_user:""
查询
region
字段值包含cn*
的日志。这里的
cn*
为一个字符串。如果日志内容为region:cn*,en
,分词符为半角逗号(,),则该日志内容被拆分为region
、cn*
和en
,你可以通过下述语句查询到该日志。region:"cn*"
在分析语句(SELECT语句)中使用引号
说明
当字段名、表名等专有名词中存在特殊字符(空格、中文等)、语法关键词(and、or等)等内容时,需要使用双引号("")包裹。
表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:
'status'
表示字符串status,status
或"status"
表示日志字段status。
示例
计算请求时长的前10名。
列名
top 10
中存在空格,需使用双引号("")包裹。* | SELECT max(request_time,10) AS "top 10"
查询包含
192.168.XX.XX
的日志。* | select * from log where key like '192.168.%.%'
统计不同请求状态对应的日志数量。
此处
content
字段的索引为JSON类型。更多信息,请参见如何查询和分析有索引的JSON字段。* | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"