すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:比較演算子

最終更新日:Feb 15, 2025

比較演算子は、パラメーター値を比較するために使用されます。 double、bigint、varchar、timestamp、および date の以下のデータ型の値を比較できます。このトピックでは、比較演算子の構文について説明します。また、比較演算子の使用方法の例も示します。

比較演算子の概要

次の表に、Simple Log Service でサポートされている比較演算子を示します。

重要 分析文で文字列を使用する場合は、文字列を単一引用符 ('') で囲む必要があります。囲まれていない文字列、または二重引用符 ("") で囲まれた文字列は、フィールド名または列名を示します。たとえば、'status' は status 文字列を示し、status または "status" は status ログフィールドを示します。

演算子

構文

説明

SQL でのサポート

SPL でのサポート

関係演算子

x < y

xy より小さい場合、true が返されます。

x > y

xy より大きい場合、true が返されます。

x <= y

xy 以下の場合、true が返されます。

x >= y

xy 以上の場合、true が返されます。

x = y

xy と等しい場合、true が返されます。

x <> y

xy と等しくない場合、true が返されます。

x != y

xy と等しくない場合、true が返されます。

ALL 演算子

x 関係演算子 ALL(サブクエリ)

x がすべての条件を満たす場合、true が返されます。

×

ANY 演算子

x 関係演算子 ANY(サブクエリ)

x がいずれかの条件を満たす場合、true が返されます。

×

BETWEEN 演算子

x BETWEEN y AND z

xyz の間にある場合、true が返されます。

DISTINCT 演算子

x IS DISTINCT FROM y

xy と等しくない場合、true が返されます。

×

x IS NOT DISTINCT FROM y

xy と等しい場合、true が返されます。

×

LIKE 演算子

x LIKE パターン [escape 'エスケープ文字']

文字列内の指定された文字パターンと一致します。文字列は大文字と小文字が区別されます。

SOME 演算子

x 関係演算子 SOME(サブクエリ)

x がいずれかの条件を満たす場合、true が返されます。

×

GREATEST 演算子

GREATEST(x, y...)

xy の大きい方の値を取得します。

×

LEAST 演算子

LEAST(x, y...)

xy の小さい方の値を取得します。

×

NULL 演算子

x IS NULL

x が null の場合、true が返されます。

x IS NOT NULL

x が null でない場合、true が返されます。

関係演算子

関係演算子は、xy を比較します。条件が満たされると、true が返されます。

構文

構文

説明

x < y

xy より小さいです。

x > y

xy より大きいです。

x <= y

xy 以下です。

x >= y

xy 以上です。

x = y

xy と等しいです。

x <> y

xy と等しくありません。

x != y

xy と等しくありません。

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

戻り値の型

ブール型。

  • 例 1:前日のログをクエリします。

    • クエリステートメント

      * |
      SELECT
        *
      FROM  log
      WHERE
        __time__ < to_unixtime(current_date)
        AND __time__ > to_unixtime(date_add('day', -1, current_date))
    • クエリと分析結果current_date

  • 例 2:E コマース企業 A は、アクセスログの mobile フィールドと client_ip フィールドを使用して、電話番号がウェブサイトへのアクセスに使用された IP アドレスと異なる場所の顧客を見つけます。

    • サンプルフィールド

      mobile:1881111****
      client_ip:192.168.2.0
    • クエリステートメント

      * |
      SELECT
        mobile,
        client_ip,
        count(*) AS PV
      WHERE
        mobile_city(mobile) != ip_to_city(client_ip)
        AND ip_to_city(client_ip) != ''
      GROUP BY
        client_ip,
        mobile
      ORDER BY
        PV DESC
    • クエリと分析結果mobile_city

ALL 演算子

ALL 演算子は、x がすべての条件を満たすかどうかを判断します。すべての条件が満たされると、true が返されます。

構文

x 関係演算子 ALL(サブクエリ)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

関係演算子

このパラメーターの値は関係演算子です。有効な値:< > <= >= = <> !=

重要

ALL 演算子の後には関係演算子が続く必要があります。関係演算子:< > <= >= = <> !=

サブクエリ

このパラメーターの値は SQL サブクエリです。

戻り値の型

ブール型。

インスタンス i-01 に関連する各リクエストが状態コード 200 で応答されるかどうかを確認します。

  • サンプルフィールド

    instance_id:i-01
    status:200
  • クエリステートメント

    * | select 200 = ALL(select status where instance_id='i-01')
  • クエリと分析結果all

ANY 演算子

ANY 演算子は、x がいずれかの条件を満たすかどうかを判断します。いずれかの条件が満たされると、true が返されます。

構文

x 関係演算子 ANY(サブクエリ)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

関係演算子

このパラメーターの値は関係演算子です。有効な値:< > <= >= = <> !=

重要

ANY 演算子の後には関係演算子が続く必要があります。関係演算子:< > <= >= = <> !=

サブクエリ

このパラメーターの値は SQL サブクエリです。

戻り値の型

ブール型。

インスタンス i-01 に関連するリクエストが状態コード 200 で応答されるかどうかを確認します。

  • サンプルフィールド

    instance_id:i-01
    status:200
  • クエリステートメント

    * | SELECT 200 = ANY(SELECT status WHERE instance_id='i-01')
  • クエリと分析結果any

BETWEEN 演算子

BETWEEN 演算子は、xyz の間にあるかどうかを判断します。条件が満たされると、true が返されます。 yz は閉区間を指定します。

構文

x BETWEEN y AND z

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

z

このパラメーターの値は、比較をサポートするデータ型です。

重要
  • xy、および z のデータ型は同じである必要があります。

  • xy、または z の値に null が含まれている場合、null が返されます。

戻り値の型

ブール型。

  • 例 1:status フィールドの値が [200, 299] の範囲内にあるかどうかを判断します。

    • クエリステートメント

      * | SELECT status BETWEEN 200 AND 299
    • クエリと分析結果BETWEEN

  • 例 2:status フィールドの値が [200, 299] の範囲内にないログの数を判断します。

    • クエリステートメント

      * | SELECT count(*) AS count FROM log WHERE status NOT BETWEEN 200 AND 299
    • クエリと分析結果between

DISTINCT 演算子

DISTINCT 演算子は、xy と等しいかどうかを判断します。

構文

  • IS DISTINCT FROM:xy と等しくない場合、true が返されます。

    x IS DISTINCT FROM y
  • IS NOT DISTINCT FROM:xy と等しい場合、true が返されます。

    x IS NOT DISTINCT FROM y

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

= 演算子および <> 演算子とは異なり、DISTINCT 演算子を使用して null の比較を実行できます。

x

y

x = y

x <> y

x IS DISTINCT FROM y

x IS NOT DISTINCT FROM y

1

1

true

false

false

true

1

2

false

true

true

false

1

null

null

null

true

false

null

null

null

null

false

true

戻り値の型

ブール型。

0 と null を比較します。

  • クエリステートメント

    * | select 0 IS DISTINCT FROM null
  • クエリと分析結果distinct

LIKE 演算子

LIKE 演算子は、文字列内の指定された文字パターンと一致します。文字列は大文字と小文字が区別されます。

構文

x LIKE パターン [escape 'エスケープ文字']

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

パターン

このパラメーターの値は文字パターンで、文字列またはワイルドカード文字を含めることができます。次のワイルドカード文字がサポートされています。

  • パーセント記号 (%):任意の数の文字を示します。

  • アンダースコア (_):単一の文字を示します。

エスケープ文字

このパラメーターの値は、文字パターンのワイルドカード文字をエスケープするために使用される文字式です。

説明

LIKE 演算子は、完全一致に基づいてログをクエリするために使用されます。詳細については、「完全一致を使用してログをクエリするにはどうすればよいですか?」をご参照ください。

戻り値の型

ブール型。

SQL

  • 例 1:request_uri フィールドの値が file-8 または file-6 で終わるログをクエリします。

    • サンプルフィールド

      request_uri:/request/path-2/file-6
    • クエリステートメント

      *|SELECT * WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
    • クエリと分析結果OR

  • 例 2:request_uri フィールドの値が file-6 で終わるかどうかを確認します。

    • サンプルフィールド

      request_uri:/request/path-2/file-6
    • クエリステートメント

      * | SELECT request_uri LIKE '%file-6'
    • クエリと分析結果like

SPL

  • 例 1:request_uri フィールドの値が file-8 または file-6 で終わるログをクエリします。

    • サンプルフィールド

request_uri:/request/path-2/file-6
  • SPL ステートメント

*|WHERE request_uri LIKE '%file-8' OR request_uri LIKE '%file-6'
  • SPL 結果

image.png

  • 例 2:request_uri フィールドの値が file-6 で終わるかどうかを確認します。

    • サンプルフィールド

request_uri:/request/path-2/file-6
  • SPL ステートメント

* | extend a = request_uri LIKE '%file-6'
  • SPL 結果

image.png

SOME 演算子

SOME 演算子は、x がいずれかの条件を満たすかどうかを判断します。いずれかの条件が満たされると、true が返されます。

構文

x 関係演算子 SOME(サブクエリ)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

関係演算子

このパラメーターの値は関係演算子です。有効な値:< > <= >= = <> !=

重要

SOME 演算子の後には関係演算子が続く必要があります。関係演算子:< > <= >= = <> !=

サブクエリ

このパラメーターの値は SQL サブクエリです。

戻り値の型

ブール型。

インスタンス i-01 に関連するリクエストが 20 秒未満で処理されるかどうかを確認します。

  • サンプルフィールド

    instance_id:i-01
    request_time:16
  • クエリステートメント

    * | SELECT 20 > SOME(SELECT request_time WHERE instance_id='i-01')
  • クエリと分析結果any

GREATEST 演算子

GREATEST 演算子は、xy の大きい方の値を取得します。

説明

GREATEST 演算子は水平比較に使用され、max 関数は垂直比較に使用されます。

構文

GREATEST(x, y...)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

戻り値の型

double 型。

同じログの request_time フィールドと status フィールドの値を比較して、大きい方の値を取得します。

  • サンプルフィールド

    request_time:38
    status:200
  • クエリステートメント

    * |  SELECT GREATEST(request_time,status)
  • クエリと分析結果greatest

LEAST 演算子

LEAST 演算子は、xy の小さい方の値を取得します。

説明

LEAST 演算子は水平比較に使用され、min 関数は垂直比較に使用されます。

構文

LEAST(x, y...)

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

y

このパラメーターの値は、比較をサポートするデータ型です。

戻り値の型

double 型。

同じログの request_time フィールドと status フィールドの値を比較して、小さい方の値を取得します。

  • サンプルフィールド

    request_time:77
    status:200
  • クエリステートメント

    * |  SELECT LEAST(request_time,status)
  • クエリと分析結果least

NULL 演算子

NULL 演算子は、x が null かどうかを判断します。

構文

  • IS NULL:x が null の場合、true が返されます。

    x IS NULL
  • IS NOT NULL:x が null でない場合、true が返されます。

    x IS NOT NULL

パラメーター

パラメーター

説明

x

このパラメーターの値は、比較をサポートするデータ型です。

戻り値の型

ブール型。

  • 例 1:status フィールドの値が null かどうかを判断します。

    • クエリステートメント

      * | select status IS NULL
    • クエリと分析結果is null

  • 例 2:status フィールドが空でないログの数を判断します。

    • クエリステートメント

      * | SELECT count(*) AS count FROM log WHERE status IS NOT NULL
    • クエリと分析結果is not null