Log Service における AND、OR、および NOT 論理演算子の構文、使用方法、および真理値表について説明します。
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 を返します。
-
クエリと分析文
*|SELECT status=200 AND request_method='GET' -
結果は
_col0列にtrueまたはfalseとして表示され、各ログがstatus=200およびrequest_method='GET'の両方の条件を満たしているかどうかを示します。
SPL
status が 200 で、かつ request_method が 'GET' の場合に true となるフィールド a を作成します。
-
SPL 文
*|extend a = status=200 AND request_method='GET'
-
SPL の結果
a: true
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' -
request_uriの値が/request/path-2/file-6および/request/path-0/file-6の 2 件のレコードを返します。リクエストメソッドは DELETE および PUT で、両方の状態コードは 200 です。
SPL
request_uri が 'file-8' または 'file-6' で終わるログを検索します。
-
SPL 文
*|WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
-
フィルターに一致するログエントリを返します。たとえば、
request_uriの値が/request/path-2/file-6のログは、'file-6' 接尾辞の条件に一致します。
NOT 演算子
x が false と評価された場合に true を返します。
構文
NOT x
パラメーター
|
パラメーター |
説明 |
|
x |
ブール値式。 |
戻り値の型
boolean
例
SQL
状態コードが 200 以外のリクエストのリクエスト時間を取得します。
-
クエリと分析文
*|SELECT request_time WHERE NOT status=200 -
一致するログの
request_time値を返します。サンプル結果:53.0、24.0、56.0、および 32.0。
SPL
状態コードが 200 以外のログエントリをフィルターします。
-
SPL 文
*|WHERE NOT status=200
-
状態コードが 200 以外のログエントリを返します。たとえば、
status=500かつrequest_uri=/request/path-2/file-6のログです。
真理値表
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 |