当使用sql语句根据表名查询数据库中表的字段时,我们常用的语句是:
SELECT * FROM information_schema.COLUMNS WHERE table_name = 'table_name'
但是,这个查询语句只适用于当前数据库连接中不存在其他同名数据表,若在同一连接下创建不同数据库,并且建立同名的表,那么,此语句查询出来的表的字段数据不仅有该数据库下数据表中的字段,还会查询出同一连接不同数据库下相同表名的表字段
因此,添加以下sql语句后,问题解决,
and TABLE_SCHEMA=(select database()) -- 只查询当前数据库
SELECT * FROM information_schema.COLUMNS
WHERE table_name = 'table_name'
and TABLE_SCHEMA=(select database())