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
提交
取消