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条经验 获得超8个赞
如果用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
提交
取消
