我一直在尝试使用以下语句计算数据库中表的列数:
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 |
如何正确计算表格的列?
答案 0 :(得分:3)
以下查询返回您拥有的列数。如果你想获得12,你将不得不乘以表中的行数:
SELECT COUNT(*)
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='Yourdatabase'
AND `TABLE_NAME`='yourtable';
中查看
答案 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();