すべてのプロダクト
Search
ドキュメントセンター

PolarDB:演算子の優先順位

最終更新日:May 28, 2024

このトピックでは、PolarDB-X 1.0でサポートされている演算子の優先順位について説明します。

次の表に、PolarDB-X 1.0でサポートされている演算子の優先順位を示します。 演算子は、降順の優先順位でリストされます。

優先順位演算子
15!
14- (unaryマイナス) と ~
13^
12* 、/、% 、およびMOD
11+ と-
10<<,>>
9&
8|
7=(比較のための等式演算子), <=>, >, >=, <, <=, <>,! =、IS、LIKE、REGEXP、およびIN
6の間
5NOT
4そして、&&&
3XOR
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文で使用されている場合、演算子は左から右に評価されます。