我需要知道查询结果结构。比方说,我有这个疑问:Sql查询结果结构
SELECT T.name as names
FROM (SELECT name,sex FROM user) T
WHERE T.sex='male'
什么,我需要知道的是这个查询的结果的结构是这样的:
column_name : names TYPE : varchar(60)
有没有办法得到这个?
我需要知道查询结果结构。比方说,我有这个疑问:Sql查询结果结构
SELECT T.name as names
FROM (SELECT name,sex FROM user) T
WHERE T.sex='male'
什么,我需要知道的是这个查询的结果的结构是这样的:
column_name : names TYPE : varchar(60)
有没有办法得到这个?
这可能有点复杂。跨数据库工作的一个方法是做到以下几点:
在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严格限制可用于视图的查询。
首先创建一个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
您可以使用代码获取此查询的结果,并使用它,因为你需要。
在你提出请求的地方,你知道你要求的表和列。比你可以进行查询,以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']
你并不需要创建一个视图,让您的表结构只执行以下命令
describe table_name
或 desc table_name
问题是不允许在嵌套选择上创建视图 –