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'

然后简单地 运行 一个 descdescribeview 上 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']

21.4 The INFORMATION_SCHEMA COLUMNS Table

您不需要创建视图来获取您的 table 结构,只需执行以下命令

 describe table_name

desc table_name