本文介绍逻辑运算符的基本语法及示例。

注意
  • 在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status"status"表示日志字段status。
  • 逻辑运算符优先级从高到低为not、and、or。您可以使用圆括号改变默认的计算顺序。
  • 逻辑运算只支持输入值为true、false或null的布尔表达式。
运算符 语法 说明
and运算符 x and y xy的值都为true时,返回结果为true。
or运算符 x or y xy中任意一个的值为true时,返回结果为true。
not运算符 not x x的值为false时,返回结果为true。

and运算符

xy的值都为true时,返回结果为true。

语法

x and y 

参数说明

参数 说明
x 参数值为布尔表达式。
y 参数值为布尔表达式。

返回值类型

boolean类型。

示例

如果status字段值为200且request_method字段值为GET,则返回true。否则返回false。

  • 查询和分析语句
    *|select status=200 and request_method='GET'
  • 查询和分析结果AND运算符

or运算符

xy中任意一个的值为true时,返回结果为true。

语法

x or y 

参数说明

参数 说明
x 参数值为布尔表达式。
y 参数值为布尔表达式。

返回值类型

boolean类型。

示例

查找request_uri字段值是以file-8或file-6的结尾的日志。

  • 查询和分析语句
    *|select *  where request_uri like '%file-8' OR request_uri like '%file-6'
  • 查询和分析结果OR

not运算符

x的值为false时,返回结果为true。

语法

 not x 

参数说明

参数 说明
x 参数值为布尔表达式。

返回值类型

boolean类型。

示例

统计请求状态码不为200时的请求时长。

  • 查询和分析语句
    *|select request_time where not status=200
  • 查询和分析结果NOT

附录:真值表

xy的值为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