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