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

Simple Log Service:比較演算子

最終更新日:Jun 23, 2026

比較演算子は、doublebigintvarchartimestampdate などの比較可能なデータ型のパラメーター値を比較します。このトピックでは、その構文と例について説明します。

比較演算子

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 relational operator ALL(subquery)

x がすべての条件を満たすときに true を返します。

×

ANY 演算子

x relational operator ANY(subquery)

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

×

BETWEEN 演算子

x BETWEEN y AND z

xyz の間にある(両端を含む)場合、true を返します。

DISTINCT 演算子

x IS DISTINCT FROM y

xy と等しくない場合に true を返します。<> 演算子とは異なり、この演算子は x と y の両方が NULL の場合は false を返します。

×

x IS NOT DISTINCT FROM y

xy と等しい場合に true を返します。= 演算子とは異なり、この演算子は x と y の両方が NULL の場合に true を返します。

×

LIKE 演算子

x LIKE pattern [escape 'escape_character']

文字列が指定されたパターンに一致するかどうかを確認します。この操作では大文字と小文字が区別されます。

SOME 演算子

x relational operator SOME(subquery)

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 未満の場合、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 を返します。

  • パラメーター

    パラメーター

    説明

    x

    任意の比較可能なデータ型の式。

    y

    任意の比較可能なデータ型の式。

  • 戻り値の型

    boolean

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

      • クエリ文

        * |
        SELECT
          *
        FROM  log
        WHERE
          __time__ < to_unixtime(current_date)
          AND __time__ > to_unixtime(date_add('day', -1, current_date))
      • クエリ結果:クエリは、body_bytes_sentclient_iphosthttp_user_agenthttp_x_forwarded_forinstance_idinstance_namenetwork_typeowner_idreferer などの複数のログフィールドを返します。これらのフィールドは、リクエストボディサイズ、クライアント IP アドレス、アクセスされたドメイン名、User-Agent、インスタンス ID、インスタンス名、ネットワークタイプなど、各アクセスレコードの詳細を提供します。

    • 例 2:電話番号の所在地がアクセス IP の所在地と異なる顧客を見つけるために、E コマース企業はアクセスログの mobile フィールドと client_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
      • クエリ結果:クエリは 2 つのレコードを返します。mobile 列と client_ip 列の機密情報はマスクされています。対応する PV 値は 13 と 12 です。

ALL 演算子

ALL 演算子は、値 x をサブクエリの結果セット内のすべての値と比較します。比較がセット内のすべての値に対して true である場合、true を返します。

  • 構文

    x relational operator ALL(subquery)
  • パラメーター

    パラメーター

    説明

    x

    任意の比較可能なデータ型の値。

    comparison operator

    <、>、<=、>=、=、<>、!=

    重要

    ALL 演算子は、基本演算子 (<、>、<=、>=、=、<>、!=) の直後に置く必要があります。

    subquery

    SQL サブクエリ。

  • 戻り値の型

    ブール型。

  • この例では、インスタンス 'i-01' のすべてのリクエストの状態コードが 200 であるかどうかを確認します。

    • ログの例

      instance_id:i-01
      status:200
    • クエリ・分析文

      * | select 200 = ALL(select status where instance_id='i-01')
    • クエリ・分析結果では、_col0 が false として表示されます。これは、インスタンス 'i-01' のすべてのログの状態が 200 ではないことを意味します。

ANY 演算子

ANY 演算子は、値 x を、サブクエリによって返される値のセットと比較します。セット内の少なくとも 1 つの値との比較が true の場合、true を返します。

  • 構文

    x relational operator ANY(subquery)
  • パラメーター

    パラメーター

    説明

    x

    任意の比較可能なデータ型の式。

    relational operator

    <、>、<=、>=、=、<>、または !=

    重要

    ANY 演算子の前には関係演算子を置く必要があります。

    subquery

    単一の値の列を返すサブクエリ。列のデータ型は、式 x のデータ型と一致する必要があります。

  • 戻り値の型

    boolean

  • インスタンス i-01 のいずれかのリクエストの状態コードが 200 であるかどうかを確認します。

    • フィールドの例

      instance_id:i-01
      status:200
    • クエリ文

      * | SELECT 200 = ANY(SELECT status WHERE instance_id='i-01')
    • クエリは、値が true_col0 列を返します。これは、条件が満たされたことを示します。

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
      • クエリ・分析結果:クエリは _col0 列に 3 つの行を返し、各行の値は true です。これは、対応する各ログの status フィールドの値が 200 と 299 の間にあることを示します。

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

      • クエリ文

        * | SELECT count(*) AS count FROM log WHERE status NOT BETWEEN 200 AND 299
      • クエリ・分析結果:クエリは 250 の count を返します。

DISTINCT 演算子

DISTINCT 演算子は、2 つの値、xy を比較し、NULL 値を正しく処理します。

  • 構文

    • 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
    • クエリ結果は true であり、0 と null が異なることを示します。

LIKE 演算子

LIKE 演算子は、文字列が指定された文字パターンに一致するかどうかを確認します。この操作では大文字と小文字が区別されます。

  • 構文

    x LIKE pattern [escape 'escape_character']
  • パラメーター

    パラメーター

    説明

    x

    任意の比較可能なデータ型の式。

    pattern

    検索する文字パターン。文字列とワイルドカード文字を含めることができます。次のワイルドカード文字がサポートされています:

    • パーセント記号 (%): 0 文字以上の任意の文字列に一致します。

    • アンダースコア (_): 任意の 1 文字に一致します。

    escape_character

    文字パターン内のワイルドカード文字をエスケープするために使用される文字。

    説明

    LIKE 演算子は、主にログのパターンマッチングクエリに使用されます。詳細については、「完全一致クエリの実行方法」をご参照ください。

  • 戻り値の型

    boolean

  • 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'
      • クエリ・分析結果:このクエリは、request_uri フィールドが file-8 または file-6 で終わるログレコードを返します。各レコードには、remote_addrremote_userrequest_lengthrequest_methodrequest_timerequest_urischemeserver_protocolslbidstatustime_local などのフィールドが含まれます。

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

      • サンプルフィールド

        request_uri:/request/path-2/file-6
      • クエリ・分析文

        * | SELECT request_uri LIKE '%file-6'
      • クエリは、値が true_col0 列を返します。これは、request_uri の値が %file-6 パターンに一致することを示します。

    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 結果

    クエリは、request_uri フィールドの値が file-8 または file-6 で終わるすべてのログエントリを返します。

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

      • フィールドの例

    request_uri:/request/path-2/file-6
    • SPL 文

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

    クエリ結果には、値が true の新しいフィールド a が含まれます。これは、ログエントリの request_uri フィールドの値が file-6 で終わることを示します。

SOME 演算子

SOME 演算子は、値 x をサブクエリが返す値のセットと比較します。セット内のいずれかの値に対して比較が true の場合、true を返します。

  • 構文

    x relational operator SOME(subquery)
  • パラメーター

    パラメーター

    説明

    x

    任意の比較可能なデータ型の式。

    relational operator

    <、>、<=、>=、=、<>、!=

    重要

    SOME 演算子は、関係演算子 (<、>、<=、>=、=、<>、または !=) の直後に置く必要があります。

    subquery

    単一の値の列を返すサブクエリ。列のデータ型は、式 x のデータ型と同じである必要があります。

  • 戻り値の型

    ブール型。

  • インスタンス i-01 に関連するいずれかのリクエストのリクエスト時間が 20 秒未満であるかどうかを確認します。

    • フィールドの例

      instance_id:i-01
      request_time:16
    • クエリ文

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

GREATEST 演算子

GREATEST 演算子は、xy の最大値を返します。

説明

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

  • 構文

    GREATEST(x, y...)
  • パラメーター

    パラメーター

    説明

    x

    比較可能なデータ型の式。

    y

    比較可能なデータ型の式。

  • 戻り値の型

    double

  • 同じ行の request_time フィールドと status フィールドの値を比較して、最大値を見つけます。

    • フィールドの例

      request_time:38
      status:200
    • 検索・分析文

      * |  SELECT GREATEST(request_time,status)
    • クエリ・分析結果には、値が 200.0_col0 列が含まれます。これは、request_time (38) と status (200) のうち大きい方の値です。

LEAST 演算子

LEAST 演算子は xy の最小値を返します。

説明

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

  • 構文

    LEAST(x, y...)
  • パラメーター

    パラメーター

    説明

    x

    比較する値。任意の比較可能なデータ型を指定できます。

    y

    比較する値。任意の比較可能なデータ型を指定できます。

  • 戻り値の型

    double

  • 同じ行の request_time フィールド値と status フィールド値を比較して、最小値を取得します。

    • フィールドの例

      request_time:77
      status:200
    • クエリ・分析文

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

      クエリは 77 を返します。

Null 演算子

null 演算子は、x が null かどうかをチェックします。

  • 構文

    • IS NULL:式が null の場合に true を返します。

      x IS NULL
    • IS NOT NULL:式が null でない場合に true を返します。

      x IS NOT NULL
  • パラメーター

    パラメーター

    説明

    x

    任意の比較可能なデータ型の式。

  • 戻り値の型

    ブール型。

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

      • クエリ文

        * | select status IS NULL
      • クエリ・分析結果:クエリは _col0 列を返します。両方の行に値 false が含まれており、status フィールドが null でないことを示します。

    • 例 2:status フィールドが null でないログエントリをカウントします。

      • クエリ文

        * | SELECT count(*) AS count FROM log WHERE status IS NOT NULL
      • クエリ・分析結果:クエリは 1340count を返します。