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

PolarDB:演算子

最終更新日:Mar 29, 2026

PolarDB-X では、論理演算子、算術演算子、比較演算子、ビット演算子、および代入演算子をサポートしています。本ページでは、各演算子の種類と、式の評価順序を決定する演算子の優先順位ルールについて説明します。

このページの内容:

論理演算子

演算子説明
AND, &&論理積(AND)
NOT, !論理否定(NOT)
||, OR論理和(OR)
XOR排他的論理和(XOR)

算術演算子

オペレーター説明
/, DIV部門
%, MOD1 つの数値を別の数値で割ったときの余りを返します
+加算
*乗算
-減算

比較演算子

比較演算子は、条件付き SELECT 文で行をフィルター処理する際に一般的に使用されます。各比較演算子は、以下の 3 つの値のいずれかを返します:

  • 1 — 比較が真である場合

  • 0 — 比較が偽である場合

  • NULL — 結果が不明である場合(通常、1 つまたは両方のオペランドが NULL の場合)

演算子説明
=等しい
<>, !=等しくない
>より大きい
<より小さい
<=以下(より小さいか等しい)
>=以上(より大きいか等しい)
BETWEEN値が範囲内(最小値以上かつ最大値以下)にある場合に真: value >= min AND value <= max
NOT BETWEEN値が範囲外にある場合に真
IN値が指定された集合に含まれる場合に真
NOT IN値が指定された集合に含まれない場合に真
<=>NULL 安全な等価比較:両方のオペランドが NULL の場合は 1 を返し、片方のオペランドが NULL の場合は 0 を返します
LIKEワイルドカード % および _ を使用したパターンマッチング
REGEXP, RLIKE正規表現を使用したパターンマッチング
IS NULL値が NULL の場合に真
IS NOT NULL値が NULL でない場合に真
通常の等価演算子 (=) は、いずれかのオペランドが NULL の場合に NULL を返すため、WHERE 句で予期しない結果を生じることがあります。NULL を含む可能性のある列を比較する場合は、<=> を使用してください。

ビット演算子

オペレーター説明
&ビットごとの論理積(AND)
~ビットごとの論理否定(NOT)
|ビットごとの論理和(OR)
^ビットごとの排他的論理和(XOR)
<<左シフト
>>右シフト

代入演算子

PolarDB-X では、= という代入演算子をサポートしており、主に UPDATE 文の SET 句で使用されます。

PolarDB-X では、:= という代入演算子はサポートされていません。

演算子の優先順位

以下の表に、優先順位の高い順(15 が最も高い)に並べた演算子を示します。同じ優先順位の演算子は、左から右へと評価されます。

優先順位演算子種類
15!単項(プレフィックス)
14-(単項マイナス)、~単項(プレフィックス)
13^二項
12*/%MOD二項
11+-二項
10<<>>二項
9&二項
8|二項
7=(比較)、<=>>>=<<=<>!=ISLIKEREGEXPINバイナリ
6BETWEEN三項
5NOT単項(プレフィックス)
4AND&&二項
3XOR二項
2OR||二項
1=(代入)二項

IN および NOT IN の優先順位

IN および NOT IN は、= 比較演算子よりも優先順位が高くなります。以下の例は MySQL 5.7.19 で実行されたものであり、この動作を示しています。PolarDB-X も同様の優先順位ルールに従います。

SELECT BINARY 'a' = 'a' IN (1, 2, 3);

実行結果:

+-------------------------------+
| binary 'a' = 'a' in (1, 2, 3) |
+-------------------------------+
|                             1 |
+-------------------------------+
1 row in set, 1 warning (0.01 sec)

この式は、BINARY 'a' = ('a' IN (1, 2, 3)) のように評価され、(BINARY 'a' = 'a') IN (1, 2, 3) のようには評価されません。これは、IN の優先順位が = よりも高いためです。

SELECT 1 IN (1, 2, 3) = 'a';

実行結果:

+----------------------+
| 1 in (1, 2, 3) = 'a' |
+----------------------+
|                    0 |
+----------------------+
1 row in set, 1 warning (0.00 sec)

どちらのクエリでも、警告 1292:Truncated incorrect DOUBLE value: 'a' が発生します。

MySQL 互換性

PolarDB-X は、以下の例外を除き、MySQL の演算子構文と互換性があります。

演算子MySQL のサポート状況PolarDB-X のサポート状況
:=(代入)サポート済み未サポート