MYSQL获取一个表所有字段名的最佳办法是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL获取一个表所有字段名的最佳办法是啥?相关的知识,希望对你有一定的参考价值。

请问除了获取一行所有字段外还有什么办法可以取出这个表所有字段名?

参考技术A 所有字段获取:
SELECT COLUMN_NAME FROM 'information_schema'.'COLUMNS' where 'TABLE_SCHEMA'='数据库名称' and 'TABLE_NAME'='你的表名' order by COLUMN_NAME;

笨方法:
单个获取
$re_name_1=mysql_field_name($result,1);
$re_name_2=mysql_field_name($result,2);
..........追问

不行啊,上面那段SQL语句在phpMYADMIN中执行错误

追答

你是不是打错了啊?我试过了,可以的啊。不要用复制 粘贴,自己手写进去, 用编译窗口就行了,干嘛非要用phpmyadmin啊,这个工具有些格式限制的

追问

我输入的是:
SELECT COLUMN_NAME FROM 'information_schema'.'COLUMNS' WHERE 'TABLE_SCHEMA' = 'wm5r0' AND 'TABLE_NAME' = 'albums' ORDER BY COLUMN_NAME

得到的结果是:

You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
''information_schema'.'COLUMNS' WHERE 'TABLE_SCHEMA' = 'wm5r0'
AND 'TABL' at line 1

本回答被提问者和网友采纳
参考技术B 一行的字段名字就是 这表 所有的字段名字 你具体想取什么说一下

有没有办法查询mysql中可能不存在的列?

【中文标题】有没有办法查询mysql中可能不存在的列?【英文标题】:Is there a way to query for a possible non-existent column in mysql? 【发布时间】:2011-10-03 21:35:36 【问题描述】:

我有一个脚本,用户可以在其中跨多个表选择一个字段。它使用Union 来获取所有行。现在,我有一个映射数组来指示每个表中是否存在特定字段,如果不存在,它使用"" as field_name 来检查所有内容。

我想知道是否有办法在查询中引用可能不存在的列,例如COALESCE,这样如果该列不存在,而不是抛出错误,它只是返回一个默认值.

【问题讨论】:

【参考方案1】:

coalesce 仍然需要一个字段名,所以它没有帮助:

... COALESCE(non_existent_field, NULL)

由于字段不存在,仍然会导致错误。

【讨论】:

所以我注意到了。所有谷歌搜索都表明这不是一个选择。我真的希望有一个“如果存在”类型的东西。 你可以加入 information_schema.tables 并以此为基础,但似乎需要做很多工作却没有足够的收获。 基本上,我试图避免为添加新的自定义字段构建逻辑。在前端,它会遍历并查找所有可用的自定义字段(映射数组中已经可用的字段除外),并允许用户选择自定义字段。但是在提交时,我必须再次做同样的事情来找出该字段属于哪个表,或者它是否存在于多个表中。如果该字段不存在,如果它什么都不返回,那就容易多了。但我想这不是一个选择。

以上是关于MYSQL获取一个表所有字段名的最佳办法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer中获取所有数据库名所有表名 描述所有字段名的SQL语句

查询数据库里所有表名和字段名的语句

如何用sql将两张表的字段名和列值进行匹配?

MySQL 索引 - 最佳实践是啥?

Oracle怎么查询表名,字段名以及字段的属性

在表中创建单个字段的最佳方法是啥,旨在保持对不同表字段的计算