【问题标题】:How do I count columns of a table如何计算表格的列数
【发布时间】: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计算该表的列数?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    SELECT count(*)
    FROM information_schema.columns
    WHERE table_name = 'tbl_ifo'
    

    【讨论】:

    • @codeMan 的观点非常有必要。如果您有多个具有相同表名的数据库,那么他的观点是必须的。
    【解决方案2】:

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

    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'
    • 添加数据库名称将提供更准确的结果,如果您在可能安装多个相同应用程序的环境中运行它,因此架构中有多个 X 表。
    【解决方案3】:
    $cs = mysql_query("describe tbl_info");
    $column_count = mysql_num_rows($cs);
    

    或者只是:

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

    【讨论】:

    • 这非常聪明和灵活
    【解决方案4】:

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


    参考以下代码:

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

    【讨论】:

    • 你的答案和johntotetwoo一样
    • 是的,因为由于我的连接,我无法提交答案。但是在我提交之后,有两个答案,一个已经被接受了:D
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

        此查询可能对您有所帮助

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

        【讨论】:

          【解决方案8】:

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

          SELECT count( * ) as Total_Entries FROM tbl_ifo;

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-04-30
            • 1970-01-01
            • 2021-08-05
            • 1970-01-01
            • 1970-01-01
            • 2022-08-18
            • 2019-02-22
            • 1970-01-01
            相关资源
            最近更新 更多