読み取り専用分析エンジンは現在、MySQLの四則演算ロジックの大部分をサポートしていますが、一部のシナリオでは依然として制限や非互換性が存在します。本稿では読み取り専用分析エンジンにおける四則演算のサポート状況について説明し、入力パラメータの型制限を列挙します。ドキュメントに記載されていない入力パラメータや使用方法については、一切サポートされません。
四則演算の使用制限
Decimal 型の除算:結果の小数点以下の桁数は、被除数の小数点以下の桁数 + 4 に基づいて切り捨てられます。例えば Decimal(9, 1) / Decimal(9, 1) の場合、結果の小数点以下の桁数は5桁に基づいて切り捨てられます。
Decimal の加算、減算、乗算、除算:結果の長さが65を超えると、"out of range"というエラーメッセージが表示されます。これは、読み取り専用分析エンジンにおけるDecimalがサポートするデータ型の最大長が65であるためです。
任意の数値型と浮動小数点型(float、double)の数学演算:これらにはすべて精度誤差の問題が存在します。根本的な原因は、Doubleなどの浮動小数点型自体が厳密な精度を保証しないデータ型であるためです。MySQLの実践においても、数値型と浮動小数点型を用いた数学計算はお勧めしません。
非数値型の四則演算:暗黙的な型変換が関与する場合、読み取り専用分析エンジンのCAST関数のサポート状況に制約されます。特定のシナリオにおいて、CASTがサポートされていない場合、関連する四則演算もサポートされません。詳細なCASTのサポート状況については、型変換関数のサポート説明を参照してください。 四則演算のサポートタイプ
+ 加算演算子
構文:op1 + op2
op1がサポートする値タイプ:int、bigint、float、double、decimal。
op2がサポートする値タイプ:int、bigint、float、double、decimal。
- 減算演算子
構文:op1 - op2
op1がサポートする値タイプ:int、bigint、float、double、decimal。
op2がサポートする値タイプ:int、bigint、float、double、decimal。
* 乗算演算子
構文:op1 op2
op1がサポートする値タイプ:int、bigint、float、double、decimal。
op2がサポートする値タイプ:int、bigint、float、double、decimal。
/ 除算演算子
構文:op1 / op2
op1がサポートする値タイプ:int、bigint、float、double、decimal。
op2がサポートする値タイプ:int、bigint、float、double、decimal。
% 剰余演算子
構文:op1 % op2
op1がサポートする値タイプ:int、bigint、float、double、decimal。
op2がサポートする値タイプ:int、bigint、float、double、decimal。