【发布时间】:2012-05-08 03:28:00
【问题描述】:
例如:
tbl_ifo
id | name | age | gender
----------------------------
1 | John | 15 | Male
2 | Maria | 18 | Female
3 | Steph | 19 | Female
4 | Jay | 21 | Male
如何使用mysql计算该表的列数?
【问题讨论】:
例如:
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 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。
【讨论】:
'DatabaseNameHere'应该换成'SchemaNameHere'
$cs = mysql_query("describe tbl_info");
$column_count = mysql_num_rows($cs);
或者只是:
$column_count = mysql_num_rows(mysql_query("describe tbl_info"));
【讨论】:
要精确计算表的列数,您可以通过传递所需的数据库(架构)名称和表名称来获取表单information_schema.columns。
参考以下代码:
SELECT count(*)
FROM information_schema.columns
WHERE table_schema = 'myDB'
AND table_name = 'table1';
【讨论】:
我有一个更笼统的答案;但我相信它对于计算数据库中所有表的列很有用:
SELECT table_name, count(*)
FROM information_schema.columns
GROUP BY table_name;
【讨论】:
只需使用 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'
【讨论】:
我想您想知道表格中的总条目数! 为此使用此代码..
SELECT count( * ) as Total_Entries FROM tbl_ifo;
【讨论】: