是否可以检索查询返回的列数?这可以使用绑定的脚本语言(如php)轻松完成,但我正在寻找仅限db的解决方案。
示例:
CountCols(SELECT 'a','b','c')
=> 3
CountCols(SELECT * FROM information_schema.session_variables)
=> 2
答案 0 :(得分:3)
这对你有用吗?
select
count(*)
from
`information_schema`.`columns`
where
`table_schema` = 'my_table_schema' and `table_name` = 'my_table_name';
如果表名存在于多个数据库中,则只需使用table_schema
。
根据您的回复评论,您希望计算动态列数。您可以使用临时表执行此操作,但无法访问临时表的数据,而installing a patch可能无法访问。
值得注意的是,a similar outstanding SO question询问如何从临时表中选择列。
答案 1 :(得分:1)
如果您想知道表中的列,请执行以下操作:
DESCRIBE `table_name`
否则,除了选择*
选择某些列之外,没有“真实”方式来获取选择查询中的列数 - >所以你会知道你选择了多少列。
答案 2 :(得分:1)
您最有可能找到答案:http://dev.mysql.com/doc/refman/5.0/en/columns-table.html
写一个带有表名param的查询,然后查询该表的列并将其相加。