本文介紹邏輯運算子的基本文法及樣本。
Log Service支援如下邏輯運算子。
在Log Service分析語句中,表示字串的字元必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字元表示欄位名或列名。例如:'status'表示字串status,status或"status"表示日誌欄位status。
邏輯運算子優先順序從高到低為not、and、or。您可以使用圓括弧改變預設的計算順序。
邏輯運算只支援輸入值為true、false或null的布林運算式。
運算子 | 文法 | 說明 | 支援SQL | 支援SPL |
x AND y | x和y的值都為true時,返回結果為true。 | √ | √ | |
x OR y | x和y中任意一個的值為true時,返回結果為true。 | √ | √ | |
NOT x | x的值為false時,返回結果為true。 | √ | √ |
AND運算子
x和y的值都為true時,返回結果為true。
文法
x AND y
參數說明
參數 | 說明 |
x | 參數值為布林運算式。 |
y | 參數值為布林運算式。 |
傳回值類型
boolean類型。
樣本
SQL
如果status欄位值為200且request_method欄位值為GET,則返回true。否則返回false。
查詢和分析語句
*|SELECT status=200 AND request_method='GET'
查詢和分析結果
SPL
如果status欄位值為200且request_method欄位值為GET,則返回true。否則返回false。
SPL語句
*|extend a = status=200 AND request_method='GET'
SPL結果
OR運算子
x和y中任意一個的值為true時,返回結果為true。
文法
x OR y
參數說明
參數 | 說明 |
x | 參數值為布林運算式。 |
y | 參數值為布林運算式。 |
傳回值類型
boolean類型。
樣本
SQL
尋找request_uri欄位值是以file-8或file-6的結尾的日誌。
查詢和分析語句
*|SELECT * WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
查詢和分析結果
SPL
尋找request_uri欄位值是以file-8或file-6的結尾的日誌。
SPL語句
*|WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
SPL結果
NOT運算子
x的值為false時,返回結果為true。
文法
NOT x
參數說明
參數 | 說明 |
x | 參數值為布林運算式。 |
傳回值類型
boolean類型。
樣本
SQL
統計請求狀態代碼不為200時的請求時間長度。
查詢和分析語句
*|SELECT request_time WHERE NOT status=200
查詢和分析結果
SPL
查詢請求狀態代碼不為200時的日誌資訊。
SPL語句
*|WHERE NOT status=200
SPL結果
附錄:真值表
x和y的值為true、false或null時,真值表如下所示。
x | y | x AND y | x OR y | NOT x |
true | true | true | true | false |
true | false | false | true | false |
true | null | null | true | false |
false | true | false | true | true |
false | false | false | false | true |
false | null | false | null | true |
null | true | null | true | null |
null | false | false | null | null |
null | null | null | null | null |