Table Value Constructors were introduced in MariaDB 10.3.3
VALUES ( row_value[, row_value...]), (...)...
In Unions, Views, and sub-queries, a Table Value Constructor (TVC) allows you to inject arbitrary values into the result-set. The given values must have the same number of columns as the result-set, otherwise it returns Error 1222.
Using TVC's with UNION
operations:
CREATE TABLE test.t1 (val1 INT, val2 INT); INSERT INTO test.t1 VALUES(5, 8), (3, 4), (1, 2); SELECT * FROM test.t1 UNION VALUES (70, 90), (100, 110); +------+------+ | val1 | val2 | +------+------+ | 5 | 8 | | 3 | 4 | | 1 | 2 | | 70 | 90 | | 100 | 110 | +------+------+
Using TVC's with a CREATE VIEW
statement:
CREATE VIEW v1 AS VALUES (7, 9), (9, 10); SELECT * FROM v1; +---+----+ | 7 | 9 | +---+----+ | 7 | 9 | | 9 | 10 | +---+----+
Using TVC with an ORDER BY
clause:
SELECT * FROM test.t1 UNION VALUES (10, 20), (30, 40), (50, 60), (70, 80) ORDER BY val1 DESC;
Using TVC with LIMIT
clause:
SELECT * FROM test.t1 UNION VALUES (10, 20), (30, 40), (50, 60), (70, 80) LIMIT 2 OFFSET 4; +------+------+ | val1 | val2 | +------+------+ | 30 | 40 | | 50 | 60 | +------+------+
© 2019 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/table-value-constructors/