我需要知道查询结果结构。让我们说我有这个问题:
SELECT T.name as names
FROM (SELECT name,sex FROM user) T
WHERE T.sex='male'
我需要知道的是这个查询结果的结构,如下所示:
column_name : names TYPE : varchar(60)
有办法解决这个问题吗?
答案 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
上运行describe
或view
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']
答案 3 :(得分:0)
您不需要创建视图来使表结构只执行以下命令
describe table_name
或
desc table_name