Sql 查询结果结构
Sql query result structure
我需要了解查询结果结构。假设我有这个查询:
SELECT T.name as names
FROM (SELECT name,sex FROM user) T
WHERE T.sex='male'
我需要知道的是这个查询结果的结构,像这样:
column_name : names TYPE : varchar(60)
有办法得到这个吗?
先创建一个view
CREATE VIEW view_name AS
SELECT T.name as names FROM
(SELECT name,sex FROM user) T
WHERE T.sex='male'
然后简单地 运行 一个 desc
或 describe
在 view
上 like
desc view_name
您可以使用您的代码获取此查询的结果,并根据需要使用它。
这可能有点复杂。一种跨数据库工作的方法是执行以下操作:
- 创建一个 table 或使用结构
查看
- 调查元数据
在MySQL中,您可以:
create table temp_table as
select t.name as names
from (select name, sex from user) t
where t.sex = 'male'
limit 0;
这应该会创建一个包含正确列的空 table。然后您可以查看 INFORMATION_SCHEMA.COLUMNS
以获取您想要的信息。
在 MySQL 中,临时 table 优于视图,因为(旧版本)MySQL 严格限制可用于视图的查询。
在您提出请求的地方,您知道您请求的 table 和列。然后您可以查询 INFORMATION_SCHEMA.COLUMNS table 并接收所需列的描述
喜欢
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
[AND table_schema = 'db_name']
[AND column_name LIKE 'wild']
您不需要创建视图来获取您的 table 结构,只需执行以下命令
describe table_name
或
desc table_name
我需要了解查询结果结构。假设我有这个查询:
SELECT T.name as names
FROM (SELECT name,sex FROM user) T
WHERE T.sex='male'
我需要知道的是这个查询结果的结构,像这样:
column_name : names TYPE : varchar(60)
有办法得到这个吗?
先创建一个view
CREATE VIEW view_name AS
SELECT T.name as names FROM
(SELECT name,sex FROM user) T
WHERE T.sex='male'
然后简单地 运行 一个 desc
或 describe
在 view
上 like
desc view_name
您可以使用您的代码获取此查询的结果,并根据需要使用它。
这可能有点复杂。一种跨数据库工作的方法是执行以下操作:
- 创建一个 table 或使用结构 查看
- 调查元数据
在MySQL中,您可以:
create table temp_table as
select t.name as names
from (select name, sex from user) t
where t.sex = 'male'
limit 0;
这应该会创建一个包含正确列的空 table。然后您可以查看 INFORMATION_SCHEMA.COLUMNS
以获取您想要的信息。
在 MySQL 中,临时 table 优于视图,因为(旧版本)MySQL 严格限制可用于视图的查询。
在您提出请求的地方,您知道您请求的 table 和列。然后您可以查询 INFORMATION_SCHEMA.COLUMNS table 并接收所需列的描述
喜欢
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
[AND table_schema = 'db_name']
[AND column_name LIKE 'wild']
您不需要创建视图来获取您的 table 结构,只需执行以下命令
describe table_name
或
desc table_name