Spec-Zone .ru
спецификации, руководства, описания, API
|
Приоритеты оператора показывают в следующем списке от наивысшего приоритета до самого низкого. У операторов, которые показывают вместе на строке, есть тот же самый приоритет.
INTERVALBINARY, COLLATE!- (unary minus), ~ (unary bit inversion)^*, /, DIV, %, MOD-, +<<, >>&|= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, INBETWEEN, CASE, WHEN, THEN, ELSENOT&&, ANDXOR||, OR= (assignment), :=
Приоритет =
зависит от того, используется ли это в качестве оператора сравнения (=
) или как оператор
присваивания (=
).
Когда использующийся в качестве оператора сравнения, у этого есть тот же самый приоритет как <=>
, >=
, >
, <=
, <
, <>
, !=
, IS
,
LIKE
, REGEXP
, и IN
. Когда использующийся в качестве оператора присваивания, у этого есть тот
же самый приоритет как :=
. Раздел 13.7.4,"SET
Синтаксис", и Раздел 9.4, "Определяемые пользователем
Переменные", объясняют, как MySQL определяет который интерпретация =
должен применяться.
Значение некоторых операторов зависит от режима SQL:
По умолчанию, ||
логическое OR
оператор. С PIPES_AS_CONCAT
включенный, ||
конкатенация строк, с приоритетом между ^
и унарные операторы.
По умолчанию, !
имеет более высокий приоритет чем NOT
. С
HIGH_NOT_PRECEDENCE
включенный, !
и
NOT
имейте тот же самый приоритет.
См. Раздел 5.1.7, "Режимы SQL Сервера".
Приоритет операторов определяет порядок оценки сроков в выражении. Чтобы переопределить этот порядок и групповые сроки явно, используйте круглые скобки. Например:
mysql>SELECT 1+2*3;
-> 7mysql>SELECT (1+2)*3;
-> 9