3

是否可以检索查询返回的列数?这可以使用绑定的脚本语言(例如 php)轻松完成,但我正在寻找仅 db 的解决方案。

例子:

CountCols(SELECT 'a','b','c')
    => 3
CountCols(SELECT * FROM information_schema.session_variables)
    => 2
4

3 回答 3

3

这对你有用吗?

select 
    count(*)
from
    `information_schema`.`columns`
where
    `table_schema` = 'my_table_schema' and `table_name` = 'my_table_name';

table_schema仅当表名存在于多个数据库中时才需要使用。


根据您的回复评论,您正在寻找动态的列数。您可以使用临时表执行此操作,但如果不安装补丁,则无法访问临时表的数据。

值得注意的是,有一个类似的未解决的 SO 问题询问如何从临时表中选择列。

于 2013-02-14T22:37:20.240 回答
2

好吧,如果您想知道表中的列,只需执行以下操作:

DESCRIBE `table_name`

否则,没有“真正”的方法来获取选择查询中的列数,因为除了选择*您选择某些列之外 - >因此将知道您正在选择多少列。

于 2013-02-14T22:35:01.550 回答
1

您最有可能在这里找到答案:http: //dev.mysql.com/doc/refman/5.0/en/columns-table.html

写出一个带有表名参数的查询,然后查询该表的列并将其汇总。

于 2013-02-14T22:38:00.067 回答