このトピックでは、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文で使用されている場合、演算子は左から右に評価されます。