Управление приоритетом в операциях с таблицами
Начиная с MariaDB 10.4, вы можете управлять порядком выполнения операций с таблицами с помощью скобок.
Синтаксис
( expression )
[ORDER BY [column[, column...]]]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
Описание
Использование скобок в вашем SQL позволяет контролировать порядок выполнения SELECT операторов и Конструктора значений таблиц, включая UNION, EXCEPT, и INTERSECT операции. MariaDB выполняет выражение в скобках перед остальной частью оператора. Затем вы можете использовать ORDER BY и LIMIT клаузы для дальнейшей организации набора результатов.
Примечание: На практике оптимизатор может переупорядочить точный порядок выполнения MariaDB различных частей оператора. Однако при вычислении набора результатов он возвращает значения так, как будто выражение в скобках было выполнено в первую очередь.
Пример
CREATE TABLE test.t1 (num INT); INSERT INTO test.t1 VALUES (1),(2),(3); (SELECT * FROM test.t1 UNION VALUES (10)) INTERSECT VALUES (1),(3),(10),(11); +------+ | num | +------+ | 1 | | 3 | | 10 | +------+ ((SELECT * FROM test.t1 UNION VALUES (10)) INTERSECT VALUES (1),(3),(10),(11)) ORDER BY 1 DESC; +------+ | num | +------+ | 10 | | 3 | | 1 | +------+
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/precedence-control-in-table-operations/