Mysql 如何计算表的列数

Mysql 如何计算表的列数,mysql,sql,Mysql,Sql,例如: tbl_ifo id | name | age | gender ---------------------------- 1 | John | 15 | Male 2 | Maria | 18 | Female 3 | Steph | 19 | Female 4 | Jay | 21 | Male 如何使用mysql计算此表的列数?我认为您还需要指定数据库的名称: SELECT count(*) FROM information_schema.co

例如:

tbl_ifo

id | name  | age | gender 
----------------------------
1  | John  |  15 |  Male
2  | Maria |  18 |  Female
3  | Steph |  19 |  Female
4  | Jay   |  21 |  Male

如何使用mysql计算此表的列数?

我认为您还需要指定数据库的名称:

SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'tbl_ifo'
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'SchemaNameHere'
  AND table_name = 'TableNameHere'
如果不指定数据库的名称,则只要它与表的名称匹配,就有可能对所有列进行计数。例如,您有两个数据库:
DBaseA和DbaseB
,在
DBaseA
中,它有两个表:TabA(3个字段),TabB(4个字段)。在
DBaseB
中,它又有两个表:TabA(4个字段),TabC(4个字段)

如果运行此查询:

SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'TabA'
它将返回7,因为有两个名为
TabA
的表。但是通过添加另一个条件
table_schema='SchemaNameHere'

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'DBaseA'
  AND table_name = 'TabA'

然后它只返回3。

要精确计算表中的列,您可以通过传递所需的数据库(架构)名称和表名称来获取表单
信息\u schema.columns


参考以下代码:


只需使用mysql_fetch_assoc并使用count()函数对数组进行计数

此查询可能会对您有所帮助

SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'tbl_ifo'
或者只是:

$column_count = mysql_num_rows(mysql_query("describe tbl_info"));

我有一个更一般的答案;但我相信它对于计算数据库中所有表的列是有用的:

SELECT table_name, count(*)
FROM information_schema.columns
GROUP BY table_name;

我想您想知道表中的总条目数! 为此,请使用此代码


选择count(*)作为tbl\u ifo中的总条目

我认为您的
'DatabaseNameHere'
应该替换为
'SchemaNameHere'
如果您在一个可能安装了多个相同应用程序的环境中运行此应用程序,那么添加数据库名将提供更准确的结果,因此架构中有多个X表。您的答案与johntotetwooyes完全相同,因为我无法提交我的答案,因为我的连接。但在我提交后,有两个答案,其中一个已经被接受:D@codeMan这一点很有必要。如果您有多个具有相同表名的DBs,那么他的观点是必须的。这是非常聪明和灵活的
$column_count = mysql_num_rows(mysql_query("describe tbl_info"));
SELECT table_name, count(*)
FROM information_schema.columns
GROUP BY table_name;