VALUES
描述
该语句用于返回一组单行或多行数据作为表。
VALUES 是一个表值构造函数,也可用作独立的 SQL 语句与 UNION、EXCEPT 和 INTERSECT 等结合使用。
语法
VALUES row_constructor_list [ORDER BY column_designator] [LIMIT number]
row_constructor_list:
ROW(value_list)[, ROW(value_list)][, ...]
value_list:
value[, value][, ...]
column_designator:
column_index
参数解释
| 参数 | 描述 |
|---|---|
| row_constructor_list | 行构造函数的列表,由 ROW() 行构造函数子句组成,以逗号分隔。ROW() 不能为空,但其包含在括号中每个标量值都可以为 NULL。 |
| value_list | 一个或多个标量值的列表。标量值可以是字面量或解析为标量值的表达式。同一 VALUES 语句中的每个 ROW() 所包含的 value_list 中必须具有相同数量的值。 |
| column_designator | 指定列,列的命名规则为 column_0,column_1,...。使用可选的 ORDER BY 子句按该指定列对行进 行排序。 |
示例
-
使用
VALUES输出是一张表并按指定列column_0排序。VALUES ROW(4,6,8), ROW(5,7,9), ROW(1,-2,3) ORDER BY column_0;示例的输出结果如下:
+----------+----------+----------+
| column_0 | column_1 | column_2 |
+----------+----------+----------+
| 1 | -2 | 3 |
| 4 | 6 | 8 |
| 5 | 7 | 9 |
+----------+----------+----------+
3 rows in set (0.012 sec) -
VALUES语句支持同一列中的数据为混合数据类型。VALUES ROW("q", 23, '2022-12-18'), ROW(87, "x+z", 92.6), ROW(25.0009, "Well Smith", '{"a": 11, "b": 55}');示例的输出结果如下:
+----------+------------+--------------------+
| column_0 | column_1 | column_2 |
+----------+------------+--------------------+
| q | 23 | 2022-12-18 |
| 87 | x+z | 92.6 |
| 25.0009 | Well Smith | {"a": 11, "b": 55} |
+----------+------------+--------------------+ -
VALUES与UNION一起使用,功能等效于SELECT。SELECT 11,22 UNION SELECT 33,44;
+------+------+
| 11 | 22 |
+------+------+
| 11 | 22 |
| 33 | 44 |
+------+------+
2 rows in set (0.023 sec)
VALUES ROW(11,22) UNION VALUES ROW(33,44);示例的输出结果如下:
+----------+----------+
| column_0 | column_1 |
+----------+----------+
| 11 | 22 |
| 33 | 44 |
+----------+----------+
2 rows in set (0.011 sec)