mysql如何知道一段查询结果的每个字段的数据类型

比方说我现在有一段sql查询
例如

select COUNT(b.id),b.`apply_date`,a.industry 
from 
`cj_bjzscq_zhuanli_xinsanban` as b 
LEFT JOIN 
`xinsanban_bj` as a 
on 
b.company = a.`company_name` 
where b.`apply_date` in ('2017','2016','2015','2014','2013') and a.`industry` in ('调查和咨询服务','工业机械','信息科技咨询和系统集成服务')
GROUP BY 
b.`apply_date`,a.industry 
ORDER BY b.`apply_date` desc 

查询结果如下

clipboard.png

但是我还想知道apply_date的数据类型是什么
怎么办?

阅读 13.2k
2 个回答

如果你使用java jdbc, 可以通过metadata获得字段类型

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");//得到查询结果,一个数据集 
ResultSetMetaData rsmd = rs.getMetaData(); 
int numberOfColumns = rsmd.getColumnCount(); //得到数据集的列数  

ResultSetMetaData中的结构:

om.mysql.jdbc.ResultSetMetaData@132e13d - Field level information: 
com.mysql.jdbc.Field@1617189[catalog=test,tableName=MyBean,originalTableName=mybean,columnName=id,originalColumnName=id,mysqlType=3(FIELD_TYPE_LONG),flags= PRIMARY_KEY, charsetIndex=63, charsetName=US-ASCII]
com.mysql.jdbc.Field@64f6cd[catalog=test,tableName=MyBean,originalTableName=mybean,columnName=name,originalColumnName=name,mysqlType=253(FIELD_TYPE_VAR_STRING),flags=, charsetIndex=8, charsetName=Cp1252]

用视图?但是我不清楚有没有创建视图的必要
创建视图
mysql> create view t(id,score) as select id,score from grade;
Query OK, 0 rows affected (0.02 sec)
查看视图中字段的类型

mysql> desc t;
Field Type Null Key Default Extra
id int(10) NO 0
score double(5,2) YES NULL

2 rows in set (0.00 sec)

推荐问题