MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
次のリストには、演算子の優先順位をもっとも高いものから順番に示しています。 同じ行に並んで記載されている演算子は、優先順位が同じものです。
INTERVAL BINARY, COLLATE ! - (unary minus), ~ (unary bit inversion) ^ *, /, DIV, %, MOD -, + <<, >> & | = (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN, MEMBER OF BETWEEN, CASE, WHEN, THEN, ELSE NOT AND, && XOR OR, || = (assignment), :=
=
の優先順位は、比較演算子 (=
) として使用されるのか、割り当て演算子 (=
) として使用されるのかによって異なります。 比較演算子として使用する場合、<=>
, >=
, >
, <=
, <
, <>
, !=
, IS
, LIKE
, REGEXP
および IN()
と同じ優先順位を持ちます。 割り当て演算子として使用される場合は、優先順位が :=
と同じです。セクション13.7.6.1「変数代入の SET 構文」およびセクション9.4「ユーザー定義変数」では、適用される =
の解釈が MySQL でどのように決定されるのかについて説明されています。
式内で同じ優先順位レベルで発生する演算子の場合、評価は左から右に進みますが、割当てが右から左に評価される点が異なります。
一部の演算子の優先順位と意味は、SQL モードによって異なります:
デフォルトでは、||
は論理 OR
演算子です。 PIPES_AS_CONCAT
が有効になっている場合は、||
は ^
と単項演算子間の優先順位を持つ文字列連結です。
デフォルトでは、!
は NOT
よりも高い優先順位です。 HIGH_NOT_PRECEDENCE
が有効になっている場合は、!
と NOT
の優先順位は同じです。
セクション5.1.11「サーバー SQL モード」を参照してください。
演算子の優先順位によって、式の項の評価順序が決まります。 この順序をオーバーライドし、明示的に項をグループ化するには、丸括弧を使用します。 例:
mysql>SELECT 1+2*3;
-> 7 mysql>SELECT (1+2)*3;
-> 9