文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

逻辑操作符

相比于原始的MogDB,dolphin新增了两个逻辑操作符:

  1. 新增&&操作符。
  2. 新增||操作符。
  • &&

描述:当dolphin.b_compatibility_modeTRUE时代表逻辑与运算,支持的类型包含boolean型、时间型、日期型、整型、浮点型、位串型、字符型。真值表如下:

a b a && b的结果
TRUE TRUE TRUE
TRUE FALSE FALSE
TRUE NULL NULL
FLASE FALSE FALSE
FALSE NULL FALSE
NULL NULL NULL

对于不同输入类型的处理如下表:

数据类型 处理方式
布尔型 按照真值表进行逻辑与运算。
整型 仅将零转换为布尔假,其余值均转换为布尔真,再进行逻辑与运算。
浮点型 仅将零转换为布尔假,其余值均转换为布尔真,再进行逻辑与运算。
位串型 仅将全零转换为布尔假,其余值均转换为布尔真,再进行逻辑与运算。
时间型 时间类型的转换方式仅依赖于‘小时’部分,当为输入‘00:xx:xx’时,时间类型均转换成为布尔假;当输入为‘yy:xx:xx’,且yy不为零时,时间类型均转换为布尔真。再进行逻辑与运算。
日期型 日期类型的转换方式仅依赖于‘年’部分,当为输入‘0000-xx-xx’时,日期类型均转换成为布尔假;当输入为‘yyyy-xx-xx’,且yy不为零时,日期类型均转换为布尔真。再进行逻辑与运算。
字符型 字符型的转换根据字符型的首部是否为数值,若不为数值,则直接转换成为布尔假;若为数值,则等于0的数值转换为布尔假否则转换为布尔真,然后再进行逻辑与运算。

返回值类型:boolean

示例:

  MogDB=# SELECT 1 && 1;
  ?column?
  ----------
         t
  (1 row
  • ||

描述:当sql_mode参数不为'pipes_as_concat'时代表逻辑或运算,支持的类型包含boolean型、时间型、日期型、整型、浮点型、位串型、字符型。真值表如下:

a b a || b的结果
TRUE TRUE TRUE
TRUE FALSE TRUE
TRUE NULL TRUE
FLASE FALSE FALSE
FALSE NULL NULL
NULL NULL NULL

对于不同输入类型的处理如下表:

数据类型 处理方式
布尔型 按照真值表进行逻辑或运算。
整型 仅将零转换为布尔假,其余值均转换为布尔真,再进行逻辑或运算。
浮点型 仅将零转换为布尔假,其余值均转换为布尔真,再进行逻辑或运算。
位串型 仅将全零转换为布尔假,其余值均转换为布尔真,再进行逻辑或运算。
时间型 时间类型的转换方式仅依赖于‘小时’部分,当为输入‘00:xx:xx’时,时间类型均转换成为布尔假;当输入为‘yy:xx:xx’,且yy不为零时,时间类型均转换为布尔真。再进行逻辑或运算。
日期型 日期类型的转换方式仅依赖于‘年’部分,当为输入‘0000-xx-xx’时,日期类型均转换成为布尔假;当输入为‘yyyy-xx-xx’,且yy不为零时,日期类型均转换为布尔真。再进行逻辑或运算。
字符型 字符型的转换根据字符型的首部是否为数值,若不为数值,则直接转换成为布尔假;若为数值,则等于0的数值转换为布尔假否则转换为布尔真,然后再进行逻辑或运算。

返回值类型:boolean

示例:

  MogDB=# SELECT 0 || 0;
  ?column?
  ----------
         f
  (1 row
Copyright © 2011-2024 www.enmotech.com All rights reserved.