MySQL の演算子と優先順位

ここでは MySQL の基本の演算子と優先順位についてご説明します。

MySQL の基本の比較演算子

MySQL で数値や文字列などを比較するのに使う、基本の比較演算子には次のようなものがあります。

  • A = B(A と B が等しい)
  • A <> B(A と B が等しくない。 MySQL では != も使えますが <> のほうが標準です。)
  • A > B(A より B が小さい)
  • A >= B(A が B 以上)
  • A < B(A より B が大きい)
  • A <= B(A が B 以下)

比較の評価の結果は 1 (TRUE)、0 (FALSE)、または NULL のどれかになります。

A または B、もしくは A と B 両方が NULL の時は評価の結果が NULL になります。

<=> という NULL セーフの比較演算子もあり、基本的には = と同じですが、A と B の両方が NULL の時の評価の結果が 1 (TRUE) になり、片方が NULL の時に 0 (FALSE) になります。


MySQL の基本の論理演算子

MySQL で複数のブール式を合わせて評価する時に使われる、基本の論理演算子には次のようなものがあります。

  • 式1 AND 式2 (式1 と 式2 のブール式が両方が 1 (TRUE) の時に 1 (TRUE) を返す)
  • 式1 OR 式2 (式1 と 式2 のブール式の片方が 1 (TRUE) の時に 1 (TRUE) を返す)
  • 式1 XOR 式2(式1 と 式2 のブール式の結果が同じ時は 0 (FALSE)、違う時は 1 (TRUE) を返す)
  • NOT 式(式が 1 (TRUE) の時に 0 (FALSE) を返し、0 (FALSE) の時に 1 (TRUE) を返す)

式1, 式2 が NULL になる時の動きは論理演算子によって少し違います。

NULL の時を含んだ、それぞれの論理演算子の評価の結果は次のようになります。

MySQL の演算子と優先順位 1

MySQL の演算子と優先順位 2

MySQL の演算子と優先順位 3

MySQL の演算子と優先順位 4


MySQL の演算子の優先順位

MySQL の演算子には優先順位があり、優先順位が高いものから順番に評価されます。

MySQL の演算子の優先順位は次の通りです。

INTERVAL
BINARY, COLLATE
!
- (符号の反転), ~ (ビットの反転)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (比較), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN, MEMBER OF
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
AND, &&
XOR
OR, ||
= (代入), :=

例えば AND より OR のほうが優先順位が高いので、「式1 OR 式2 AND 式3」の場合は 「式2 AND 式3」が先に評価されます。

上の基本の比較・論理演算子でご紹介していない演算子は、別のページでご紹介していきたいと思います。


以上、MySQL の基本の演算子と優先順位についてをご説明しました。

© 2024 MySQL 入門