使用查詢分析語句查詢日誌時,在一些情況下需要添加引號,例如欄位名、表名等專有名詞中存在空格。本文介紹如何在查詢分析語句中使用引號。
在查詢語句中使用引號
說明
當欄位名或欄位值中存在特殊字元(空格、中文等)、文法關鍵詞(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"