2016-02-13 270 views
0

我需要知道查询结果结构。比方说,我有这个疑问:Sql查询结果结构

SELECT T.name as names 
FROM (SELECT name,sex FROM user) T 
WHERE T.sex='male' 

什么,我需要知道的是这个查询的结果的结构是这样的:

column_name : names TYPE : varchar(60) 

有没有办法得到这个?

回答

2

这可能有点复杂。跨数据库工作的一个方法是做到以下几点:

  • 创建一个表或视图结构
  • 调查的元数据

在MySQL中,你可以这样做:

create table temp_table as 
    select t.name as names 
    from (select name, sex from user) t 
    where t.sex = 'male' 
    limit 0; 

这应该创建一个带有正确列的空表。然后您可以查看INFORMATION_SCHEMA.COLUMNS以获取所需的信息。

在MySQL中,临时表比视图更可取,因为(旧版本的)MySQL严格限制可用于视图的查询。

1

首先创建一个view

CREATE VIEW view_name AS 
SELECT T.name as names FROM 
(SELECT name,sex FROM user) T 
WHERE T.sex='male' 

然后只需运行一个descdescribeview

desc view_name 

您可以使用代码获取此查询的结果,并使用它,因为你需要。

+0

问题是不允许在嵌套选择上创建视图 –

0

在你提出请求的地方,你知道你要求的表和列。比你可以进行查询,以INFORMATION_SCHEMA.COLUMNS表和接收需要的列

的描述,如

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'] 

21.4 The INFORMATION_SCHEMA COLUMNS Table

0

你并不需要创建一个视图,让您的表结构只执行以下命令

describe table_name 

desc table_name