使用查询分析语句查询日志时,在一些情况下需要添加引号,例如字段名、表名等专有名词中存在空格。本文介绍如何在查询分析语句中使用引号。
在查询语句中使用引号
说明
当字段名或字段值中存在特殊字符(空格、中文等)、语法关键词(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"
该文章对您有帮助吗?