问题描述
是否可以检索查询返回的列数计数?可以使用绑定脚本语言(例如php)轻松完成此操作,但是我正在寻找仅限db的解决方案.
Is it possible to retrieve the count of the number of columns a query returns? This can be easily done with a bound scripting language such as php, but I'm looking for db only solution.
示例:
CountCols(SELECT 'a','b','c')
=> 3
CountCols(SELECT * FROM information_schema.session_variables)
=> 2
推荐答案
这对您有用吗?
select
count(*)
from
`information_schema`.`columns`
where
`table_schema` = 'my_table_schema' and `table_name` = 'my_table_name';
如果表名存在于多个数据库中,则只需使用table_schema
.
You only need to use table_schema
if the table name exists in more than one database.
根据您的回复评论,您希望计算动态列数.您也许可以使用临时表来执行此操作,但是如果没有安装补丁.
Based on your response comment, you are looking to count a dynamic number of columns. You may be able to do this with a temporary table, but you cannot access the data of a temporary table without possibly installing a patch.
值得注意的是,有一个类似的未解决SO问题询问如何从临时表中选择列.
Of note, there is a similar outstanding SO question asking how to select columns from a temporary table.
这篇关于当返回的列数是动态的时,如何计算MySQL查询的列数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!