计算数据库中的列数

时间:2013-09-14 21:20:19

标签: mysql sql

我一直在尝试使用以下语句计算数据库中表的列数:

    rs = st.executeQuery("SELECT COUNT(*) FROM information_schema.columns WHERE table_name = '"+TableName+"'");
            while (rs.next()) {
               i = rs.getInt(1);
    }

对于下表,此代码返回“6”。如果它只计算列,它必须返回3,如果它计算所有记录的列,则返回值必须为12.我的问题是如何获得6值。

|Username|   |Password|   |Level|
|Admin   |   |Admin   |   |1    |
|User    |   |User    |   |2    |
|Staff   |   |Staff   |   |3    |
|User1   |   |User1   |   |2    |

如何正确计算表格的列?

3 个答案:

答案 0 :(得分:3)

以下查询返回您拥有的列数。如果你想获得12,你将不得不乘以表中的行数:

SELECT COUNT(*)
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='Yourdatabase' 
    AND `TABLE_NAME`='yourtable';

sqlfiddle

中查看

答案 1 :(得分:1)

同时指定db,您可能在其他db

中有一个具有相同名称的表
...FROM information_schema.columns WHERE table_schema = 'myDB'... 

答案 2 :(得分:0)

我希望你在java工作。 你也可以尝试这个

rs = st.executeQuery("select * from "+TableName+" limit 1");
ResultSetMetaData metadata = rs.getMetaData();
int columnsNumber = metadata.getColumnCount();