2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
方法一,在程序中直接desc tablename,然后总行数就是字段数。
123456789101112131415161718192021222324 | mysql> desc ysks; + -------+---------------+----- | Field | Type | Null + -------+---------------+----- | 单号 | int (11) | YES | 金额 | decimal (10,2) | YES | 已收 | decimal (10,2) | YES | 日期 | bigint (20) | YES | 名称 | varchar (10) | YES | 余额 | decimal (10,2) | YES | 备注 | varchar (10) | YES | 品名 | varchar (10) | YES + -------+---------------+----- 8 rows in set (0.06 sec) mysql> select FOUND_ROWS(); + --------------+ | FOUND_ROWS() | + --------------+ | 8 | + --------------+ 1 row in set (0.06 sec) mysql> |
方法二,通过系统表information_schema.`COLUMNS` ( mysql5以上版本支持)。
1234567891011 | mysql> select count (*) from information_schema.`COLUMNS` -> where TABLE_SCHEMA= 'csdn' -> and TABLE_NAME= 'ysks' ; + ----------+ | count (*) | + ----------+ | 8 | + ----------+ 1 row in set (0.06 sec) mysql> |
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
如果用java,可以用DatabaseMetaData对象(数据库元数据)。
示例:(con为已经创建好的数据库连接)
DatabaseMetaData dbmd = con.getMetaData();
ResultSet rs = dbmd.getTables(null,null,null,null);
//上述参数分别表传入:类别、模式、表名称和类型
//返回的结果集是关于表的列表
ResultSetMetaData rsmd = rs.getMetaData();
int j = rsmd.getColumnCount();
System.out.println(j);
for(int i=1;i<=j;i++){
System.out.print(rsmd.getColumnLabel(i)+" ");}
System.out.println();
while(rs.next()){
for(int i=1;i<=j;i++){
Object o =rs.getObject(i);
System.out.print(o+" ");}
System.out.println();
}
添加回答
举报
0/150
提交
取消