49

例如 :

tbl_ifo

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

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

4

8 回答 8

83
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'tbl_ifo'
于 2012-05-08T03:31:30.327 回答
47

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

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'SchemaNameHere'
  AND table_name = 'TableNameHere'

如果您不指定数据库的名称,那么只要它与表的名称匹配,它就有可能计算所有列。例如,您有两个数据库:DBaseA and DbaseB,在DBaseA,它有两个表: TabA ( 3 fields )TabB(4 fields)。在 中DBaseB,它又有两个表: TabA ( 4 fields )TabC(4 fields)

如果您运行此查询:

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。

于 2012-05-08T03:39:08.087 回答
4
$cs = mysql_query("describe tbl_info");
$column_count = mysql_num_rows($cs);

要不就:

$column_count = mysql_num_rows(mysql_query("describe tbl_info"));
于 2015-12-11T09:05:40.417 回答
3

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


参考以下代码:

SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'myDB'  
AND table_name = 'table1';
于 2012-05-08T05:00:02.290 回答
1

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

SELECT table_name, count(*)
FROM information_schema.columns
GROUP BY table_name;
于 2018-06-08T12:49:58.753 回答
0

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

于 2015-01-15T09:08:35.240 回答
0

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

SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'tbl_ifo'
于 2015-01-15T09:38:05.257 回答
-1

我想你想知道表格中的总条目数!为此使用此代码..

SELECT count( * ) as Total_Entries FROM tbl_ifo;

于 2018-10-18T07:22:12.427 回答