このトピックでは、PolarDB-X 1.0でサポートされている演算子の優先順位について説明します。
次の表に、PolarDB-X 1.0でサポートされている演算子の優先順位を示します。 演算子は、降順の優先順位でリストされます。
| 優先順位 | 演算子 |
| 15 | ! |
| 14 | - (unaryマイナス) と ~ |
| 13 | ^ |
| 12 | * 、/、% 、およびMOD |
| 11 | + と- |
| 10 | <<,>> |
| 9 | & |
| 8 | | |
| 7 | =(比較のための等式演算子), <=>, >, >=, <, <=, <>,! =、IS、LIKE、REGEXP、およびIN |
| 6 | の間 |
| 5 | NOT |
| 4 | そして、&&& |
| 3 | XOR |
| 2 | または、| | |
| 1 | =(代入演算子) |
INおよびNOT IN演算子と比較演算子の優先順位を比較する
MySQL 5.7.19を実行するデータベースで次のSQL文を実行します。
mysql> select binary 'a' = 'a' in (1, 2, 3);
+ ------------------------------- +
| (1、2、3) のバイナリ 'a' = 'a' |
+ ------------------------------- +
| 1 |
+ ------------------------------- +
セットの1列、1警告 (0.01秒)
mysql> 警告を表示します。+ -------- + ------- + --------------------------------------- +
| レベル | コード | メッセージ |
+ -------- + ------- + --------------------------------------- +
| 警告 | 1292 | 切り捨てられた誤ったダブル値: 'a' |
+ -------- + ------- + --------------------------------------- +
セットの1列 (0.00秒)
mysql> select 1 in (1, 2, 3) = 'a';
+ ---------------------- +
| 1 in (1, 2, 3) = 'a' |
+ ---------------------- +
| 0 |
+ ---------------------- +
セットの1列、1警告 (0.00秒)
mysql> 警告を表示します。+ -------- + ------- + --------------------------------------- +
| レベル | コード | メッセージ |
+ -------- + ------- + --------------------------------------- +
| 警告 | 1292 | 切り捨てられた誤ったダブル値: 'a' |
+ -------- + ------- + --------------------------------------- +
セットの1列 (0.00秒)
この例は、MySQLでは、inおよびNOT IN演算子が=comparison演算子よりも優先順位が高いことを示しています。PolarDB-X 1.0は、上記の表で説明した優先順位に厳密に従います。 同じ優先順位を持つ2つ以上の演算子が1つのSQL文で使用されている場合、演算子は左から右に評価されます。