Spec-Zone.ru › MariaDB

Управление приоритетом в операциях с таблицами

MariaDB начиная с 10.4.0

Начиная с 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 |
+------+
Содержимое, воспроизведенное на этом сайте, является собственностью его соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом контенте, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API