目前只读分析引擎支持大部分 MySQL 的逻辑运算,但在部分场景下仍然存在限制和不兼容。本文介绍在只读分析引擎中逻辑运算的支持情况,针对输入参数中的类型限制进行了列举。如存在文档中未提到的入参与使用方法则均不支持。
逻辑运算支持类型
and 运算
语法:
op1 and op2
op1支持值类型:仅支持 bool 数据类型。
op2支持值类型:仅支持 bool 数据类型。or 运算
语法:
op1 or op2
op1支持值类型:仅支持 bool 数据类型。
op2支持值类型:仅支持 bool 数据类型。not 运算
语法:
not op1
op1支持值类型:仅支持 bool 数据类型。case 运算
语法:
case when search_condition then statement_list else statement_list end
search_condition 支持值类型:仅支持 bool 数据类型。
statement_list 支持值类型:int,bigint,double,decimal,varchar,char。 if 运算
语法:
if(expr1,expr2,expr3)
expr1支持值类型:仅支持 bool 数据类型。
expr2支持值类型:int,bigint,double,decimal,varchar,char。
expr3支持值类型:int,bigint,double,decimal,varchar,char。ifnull 运算
语法:
ifnull(expr1, expr2)
expr1支持值类型:int,bigint,double,decimal,varchar,char。
expr2支持值类型:int,bigint,double,decimal,varchar,char。isnull 运算
语法:
isnull(expr1)
expr1支持值类型:int,bigint,double,decimal,varchar,char。in 运算
语法:
expr IN (value,...)
expr 支持值类型:int,bigint,double,decimal,varchar,char。
value 支持值类型:int,bigint,double,decimal,varchar,char。注意:
在多 value 值的场景下,value 只能为常量,不能为变量或者字段名,如 columnA in (columnB,varA),只能为 column in ('1','2','3') 此类的使用方法。
语法:
expr IN (sub_query)
expr 支持值类型:int,bigint,double,decimal,varchar,char。
sub_query 支持值类型:支持子查询、单一字段。like 运算
语法:
expr like pattern
expr 支持值类型:int,bigint,double,decimal,varchar,char。
pattern 支持值类型:int,bigint,double,decimal,varchar,char。注意:
pattern 只支持常量,不支持代入变量或者字段名。
coalesce 运算
语法:
coalesce(value,...)
value 支持值类型:int,bigint,double,decimal,varchar,char。