AQL 論理演算子と比較演算子

AQL ステートメントでは、値が同等か異なるかを判別するために演算子が使用されます。 AQL ステートメントの WHERE 節で演算子を使用することにより、結果は WHERE 節の条件に一致する結果のみにフィルター処理されます。

次の表に、サポートされる論理演算子と比較演算子をリストします。
表 1. 論理演算子および比較演算子
オペレーター 説明
* 2 つの値を乗算し、結果を返します。
SELECT *
FROM flows 
WHERE sourceBytes * 1024 < 1 
= 等号演算子は、2 つの値を比較して、それらが等しい場合は true を戻します。
SELECT * 
FROM EVENTS
WHERE sourceIP = destinationIP 
!= 2 つの値を比較し、等しくなければ true を返します。
SELECT *
FROM events
WHERE sourceIP
!= destinationip
< AND <= 2 つの値を比較し、左側の値が右側の値より小さいか等しければ true を返します。
SELECT *
FROM flows 
WHERE sourceBytes < 64 
AND
destinationBytes <= 64  
> AND >= 2 つの値を比較し、左側の値が右側の値より大きいか等しければ true を返します。
SELECT * 
FROM flows 
WHERE sourceBytes > 64 
AND
destinationBytes >= 64
/ 2 つの値を除算し、結果を返します。
SELECT * 
FROM flows 
WHERE sourceBytes / 8 > 64 
+ 2 つの値を加算し、結果を返します。
SELECT * 
FROM flows 
WHERE sourceBytes + 
destinationBytes < 64 
- 1 つの値をもう一方の値から減算し、結果を返します。
SELECT * 
FROM flows 
WHERE sourceBytes - 
destinationBytes > 0
^ 1 つの値を指定し、指定されたべき乗計算を行って結果を返します。
SELECT * 
FROM flows 
WHERE sourceBytes ^ 2 < 256
% 値のモジュロを指定し、結果を返します。
SELECT * 
FROM flows 
WHERE sourceBytes % 8 == 7
AND ステートメントの左側と右側を取り、両方が true の場合に true を返します。
SELECT *
FROM events 
WHERE (sourceIP = destinationIP)
AND (sourcePort = destinationPort)
BETWEEN (X,Y) 左側と 2 つの値を指定し、左側がその 2 つの値の間にある場合に true を返します。
SELECT * 
FROM events 
WHERE magnitude
BETWEEN 1 AND 5 
COLLATE BCP47 言語タグで照合できるようにする ORDER BY のパラメーター。
SELECT * 
FROM EVENTS ORDER BY
sourceIP DESC COLLATE 'de-CH' 
IN WHERE 節に複数の値を指定します。 IN 演算子は複数の OR 条件の省略表現です。
SELECT *
FROM EVENTS
WHERE SourceIP IN ('192.0.2.1', '::1', '198.51.100.0')
INTO 別の時間での照会が可能な結果を含む名前付きカーソルを作成します。
SELECT * FROM EVENTS INTO
 'MyCursor' WHERE....
NOT ステートメントを取得し、ステートメントが false に評価された場合に true を返します。
SELECT * FROM EVENTS 
WHERE NOT 
(sourceIP = destinationIP) 
ILIKE 渡されたストリングが、渡された値と LIKE の関係にあるかどうかを照合します。大/小文字の区別はありません。 ワイルドカードとして % を使用します。
SELECT * 
FROM events WHERE userName 
ILIKE '%bob%' 
IMATCHES ストリングが、指定された正規表現と一致するかどうかを照合します。大/小文字の区別はありません。
SELECT * 
FROM events 
WHERE userName
IMATCHES '^.bob.$' 
LIMIT 結果の数を、指定した数に制限します。
SELECT * 
FROM events LIMIT 100 
START '2015-10-28 10:00' 
STOP '2015-10-28 11:00'
注: LIMIT 節は、 START 節と STOP 節の前に配置してください。
LIKE 渡されたストリングが、渡された値と LIKE の関係にあるかどうかを照合します。大/小文字の区別があります。 ワイルドカードとして % を使用します。
SELECT * 
FROM events WHERE userName 
LIKE '%bob%' 
MATCHES ストリングが、指定された正規表現と一致するかどうかを照合します。
SELECT * 
FROM events 
WHERE userName MATCHES
'^.bob.$' 
NOT NULL 値を指定し、値が null でない場合に true を返します。
SELECT *
FROM events 
WHERE userName 
IS NOT NULL
OR ステートメントの左側とステートメントの右側を取り、いずれかが true の場合に true を返します。
SELECT *
FROM events 
WHERE (sourceIP = destinationIP)
OR (sourcePort = destinationPort)
TEXT SEARCH

渡された値での全文検索。

TEXT SEARCH は、AND 演算子とともに使用できます。 TEXT SEARCH は、OR 演算子および他の演算子とともに使用することはできません。使用した場合は構文エラーが発生します。

TEXT SEARCH は、WHERE 節の最初の位置に配置してください。

QRadar® ユーザー・インターフェースのクイック・フィルターを使用して、フルテキスト検索を実行することもできます。 クイック・フィルター機能について詳しくは、「 IBM® QRadar ユーザー・ガイド」を参照してください。

SELECT * 
FROM events 
WHERE TEXT SEARCH 'firewall'
AND sourceip='192.168.1.1' 

SELECT sourceip,url 
FROM events 
WHERE TEXT SEARCH 
'download.cdn.mozilla.net' 
AND sourceip='192.168.1.1' 
START '2015-01-30 16:10:12' 
STOP '2015-02-22 17:10:22'

論理演算子および比較演算子の例

  • 解析されていないイベントを検索するには、以下の照会を入力します。
    SELECT * FROM events 
    WHERE payload = 'false'
  • オフェンスを返す、特定の送信元 IP アドレスを持つイベントを検索するには、以下の照会を入力します。
    SELECT * FROM events 
    WHERE sourceIP = '192.0.2.0' 
    AND
    hasOffense = 'true'
  • 「firewall」のテキストを含むイベントを検索するには、以下の照会を入力します。
    SELECT QIDNAME(qid) 
    AS EventName, 
    * FROM events 
    WHERE TEXT SEARCH 'firewall'