查询MySQL中user表列名时返回大量额外字段的问题
问题分析与解决方法
你的问题出在查询语句没指定目标数据库(schema):
MySQL的information_schema.columns表存储了所有数据库中所有表的字段信息,而MySQL自带的mysql系统库下,本身就有一个名为user的系统表——这个表专门存储用户权限相关的字段,就是你看到的那些额外内容。你只过滤了表名user,结果把业务库的user表和系统库的user表字段都查出来了,才会出现大量冗余字段。
修正方法很简单,在查询条件里加上table_schema,指定你实际使用的业务数据库名称:
select column_name from information_schema.columns where table_name = 'user' and table_schema = '你的业务库名';
把语句里的你的业务库名替换成你自己的数据库名称,就能精准返回你需要的date_joined、email等字段了。
内容的提问来源于stack exchange,提问作者Cory Eheart
相关产品推荐
相关产品推荐

