是否可以从 MySQL查询中获取字段类型,就像使用SHOW COLUMNS命令从表中获取它一样?例如从派生表中,
SELECT x -- presumedMetaFn(x) -- returns "int"
FROM (
SELECT 1 AS x
UNION SELECT 2
) AS t;
Run Code Online (Sandbox Code Playgroud)
鉴于上述查询,是否有一个函数或其他东西可以用来获取 x 的类型?PostgreSQL 通过系统信息函数提供此功能pg_typeof
SELECT x, pg_typeof(x)
FROM ( VALUES (1),(2) ) AS t(x);
x | pg_typeof
---+-----------
1 | integer
2 | integer
(2 rows)
Run Code Online (Sandbox Code Playgroud)
我不是在表上寻找元数据,而是从查询结果中寻找元数据。 随着psqlPostgreSQL的11+,这也可以通过运行\gdesc查询后。
Bri*_*and 11
在 MySQL 中,您可以通过创建一个临时表,然后DESCRIBE在该临时表上使用来获取此信息:
CREATE TEMPORARY TABLE `temp`
SELECT ...
FROM ...
LIMIT 0;
DESCRIBE `temp`;
Run Code Online (Sandbox Code Playgroud)
我们不能只DESCRIBE在原始表上使用,因为我们想知道类型的列是计算列,而不是直接从表中提取的列。同样,我们不能DESCRIBE直接在查询上使用,因为DESCRIBE只能在表上使用。创建临时表可以解决这两个问题。