是否可以检索查询返回的列数?这可以使用绑定的脚本语言(例如 php)轻松完成,但我正在寻找仅 db 的解决方案。
例子:
CountCols(SELECT 'a','b','c')
=> 3
CountCols(SELECT * FROM information_schema.session_variables)
=> 2
是否可以检索查询返回的列数?这可以使用绑定的脚本语言(例如 php)轻松完成,但我正在寻找仅 db 的解决方案。
例子:
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
仅当表名存在于多个数据库中时才需要使用。
根据您的回复评论,您正在寻找动态的列数。您可以使用临时表执行此操作,但如果不安装补丁,则无法访问临时表的数据。
值得注意的是,有一个类似的未解决的 SO 问题询问如何从临时表中选择列。
好吧,如果您想知道表中的列,只需执行以下操作:
DESCRIBE `table_name`
否则,没有“真正”的方法来获取选择查询中的列数,因为除了选择*
您选择某些列之外 - >因此您将知道您正在选择多少列。
您最有可能在这里找到答案:http: //dev.mysql.com/doc/refman/5.0/en/columns-table.html
写出一个带有表名参数的查询,然后查询该表的列并将其汇总。