如何计算表的列数

时间:2012-05-08 03:28:00

标签: 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计算此表的列?

8 个答案:

答案 0 :(得分:65)

SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'tbl_ifo'

答案 1 :(得分:36)

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

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

如果您没有指定数据库的名称,只要它与表的名称匹配,它就有可能计算所有列。例如,您有两个数据库:DBaseA and 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.

答案 2 :(得分:4)

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

或者只是:

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

答案 3 :(得分:2)

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


参考以下代码:

SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'myDB'  
AND table_name = 'table1';

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

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

SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'tbl_ifo'

答案 6 :(得分:0)

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

SELECT count( * ) as Total_Entries FROM tbl_ifo;

答案 7 :(得分:-1)

只需使用mysql_fetch_assoc并使用count()函数计算数组