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

PolarDB:演算子

最終更新日:Jun 05, 2024

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

論理演算子

PolarDB-Xは、次の論理演算子をサポートしています。

演算子

説明

そして、&&&

論理AND演算子。

違うよ!

論理NOT演算子。

||, OR

論理OR演算子。

XOR

論理XOR演算子。

算術演算子

PolarDB-Xは、次の算術演算子をサポートしています。

演算子

説明

/, DIV

除算演算子。

%, MOD

数値を別の数値で割ったときに得られる余りを返します。

+

加算演算子。

*

乗算演算子。

-

減算演算子。

比較演算子

比較演算子は、条件付きSELECTステートメントで頻繁に使用されます。 比較演算子を使用すると、テーブル内のどのレコードが要件を満たしているかを判断できます。 比較の結果が真である場合、1が返される。 結果がfalseの場合は0が返されます。 結果が不確定の場合、NULLが返されます。

PolarDB-Xは、次の比較演算子をサポートしています。

演算子

説明

=

値が別の値と等しいかどうかをテストします。

<>,! =

値が別の値と等しくないかどうかをテストします。

>

値が別の値より大きいかどうかをテストします。

<

値が別の値より小さいかどうかをテストします。

<=

値が別の値より大きくないかどうかをテストします。

>=

値が別の値より小さくないかどうかをテストします。

の間

値が2つの値の間にあるかどうかをテストします。

>=min &&<= max

の間ではない

値が2つの値の間にないかどうかをテストします。

IN

値がセットにあるかどうかをテストします。

NOT IN

値がセットにないかどうかをテストします。

<=>

2つの値が等しいかどうかをテストします。 オペランドはNULLにすることができます。

説明

両方のオペランドがNULLの場合、1が返されます。 1つのオペランドがNULLの場合、0が返されます。

LIKE

この演算子は、ファジーマッチングに使用される。

REGEXPまたはRLIKE

この演算子は、正規表現に基づくマッチングに使用されます。

IS NULL

値がNULLかどうかをテストします。

IS NOT NULL

値がNULLでないかどうかをテストします。

ビットごとの演算子

PolarDB-Xは、次のビット演算子をサポートします。

演算子

説明

&

ビット単位のAND演算子。

~

Bitwise NOT演算子。

l

ビットごとのOR演算子。

^

ビットごとのXOR演算子。

<<

左シフト演算子。

>>

右シフト演算子。

割り当て演算子

PolarDB-Xは、equality (=) 代入演算子をサポートします。 ほとんどの場合、この演算子はUPDATEステートメントのSET句で使用されます。

PolarDB-Xは、:= assignment演算子をサポートしていません。

演算子の優先順位

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

優先順位

演算子

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文を実行します。

(1、2、3) でバイナリ 'a' = 'a' を選択します。+ ------------------------------- +
| (1、2、3) のバイナリ 'a' = 'a' |
+ ------------------------------- +
| 1 |
+ ------------------------------- +
セットの1列、1警告 (0.01秒)

警告を表示します。+ -------- + ------- + --------------------------------------- +
| レベル | コード | メッセージ |
+ -------- + ------- + --------------------------------------- +
| 警告 | 1292 | 切り捨てられた誤ったダブル値: 'a' |
+ -------- + ------- + --------------------------------------- +
セットの1列 (0.00秒)

(1、2、3) = 'a' で1を選択します。+ ---------------------- +
| 1 in (1, 2, 3) = 'a' |
+ ---------------------- +
| 0 |
+ ---------------------- +
セットの1列、1警告 (0.00秒)

警告を表示します。+ -------- + ------- + --------------------------------------- +
| レベル | コード | メッセージ |
+ -------- + ------- + --------------------------------------- +
| 警告 | 1292 | 切り捨てられた誤ったダブル値: 'a' |
+ -------- + ------- + --------------------------------------- +
セットの1列 (0.00秒)
            

返された結果は、INおよびNOT IN演算子がMySQLのequality (=) 比較演算子よりも優先順位が高いことを示しています。 PolarDB-XのSQL文は、同じ優先順位ルールに基づいて実行されます。 同じ優先順位の演算子は、左から右の順に評価されます。