JavaScript 模式下 MySQL Shell 的 X DevAPI 用户指南 /
第 12 章表达式 EBNF 定义
本节提供 X DevAPI 中使用的表达式语言语法的可视化参考指南。
schemaQualifiedIdent
::= ( ident_schema '.' )? ident
图 12.3 columnIdent
columnIdent
::= ( ident '.' ( ident '.' )? )? ident ( ( '->' | '->>' ) "'" '$' documentPath "'" )?
documentPathLastItem
::= '[*]'
| '[' INT ']'
| '.*'
| '.' documentPathMember
castType ::= 'SIGNED' 'INTEGER'*
| 'UNSIGNED' 'INTEGER'*
| 'CHAR' lengthSpec*
| 'BINARY' lengthSpec*
| 'DECIMAL' ( lengthSpec | '(' INT ',' INT ')' )?
| 'TIME'
| 'DATE'
| 'DATETIME'
| 'JSON'
atomicExpr
::= placeholder
| columnOrPath
| functionCall
| groupedExpr
| unaryOp
| castOp
INTERVAL_UNIT
::= 'MICROSECOND'
| 'SECOND'
| 'MINUTE'
| 'HOUR'
| 'DAY'
| 'WEEK'
| 'MONTH'
| 'QUARTER'
| 'YEAR'
| 'SECOND_MICROSECOND'
| 'MINUTE_MICROSECOND'
| 'MINUTE_SECOND'
| 'HOUR_MICROSECOND'
| 'HOUR_SECOND'
| 'HOUR_MINUTE'
| 'DAY_MICROSECOND'
| 'DAY_SECOND'
| 'DAY_MINUTE'
| 'DAY_HOUR'
| 'YEAR_MONTH'
compExpr ::= bitExpr ( ( '>=' | '>' | '<=' | '<' | '=' | '<>' | '!=' ) bitExpr )*
ilriExpr ::= compExpr 'IS' 'NOT'* ( 'NULL' | 'TRUE' | 'FALSE' )
| compExpr 'NOT'* 'IN' '(' argsList* ')'
| compExpr 'NOT'* 'IN' compExpr
| compExpr 'NOT'* 'LIKE' compExpr ( 'ESCAPE' compExpr )*
| compExpr 'NOT'* 'BETWEEN' compExpr 'AND' compExpr
| compExpr 'NOT'* 'REGEXP' compExpr
| compExpr
FLOAT ::= DIGIT* '.' DIGIT+ ( 'E' ( '+' | '-' )* DIGIT+ )*
| DIGIT+ 'E' ( '+' | '-' )* DIGIT+