Sql查询结果结构

时间:2016-02-13 12:16:12

标签: mysql sql select subquery

我需要知道查询结果结构。让我们说我有这个问题:

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

我需要知道的是这个查询结果的结构,如下所示:

column_name : names TYPE : varchar(60)

有办法解决这个问题吗?

4 个答案:

答案 0 :(得分: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 :(得分:1)

首先创建一个view

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

然后只需在desc上运行describeview

desc view_name

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

答案 2 :(得分: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

答案 3 :(得分:0)

您不需要创建视图来使表结构只执行以下命令

 describe table_name

desc table_name