mysql使用sql语句查询表中所有字段中遇到的坑

当使用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())

版权声明:本文为qq_37991944原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。