【发布时间】:2011-04-11 04:33:31
【问题描述】:
我使用此查询来选择给定表中的字段。是否可以只选择字段名而不选择表的整个结构?
SHOW COLUMNS FROM student
【问题讨论】:
标签: mysql
我使用此查询来选择给定表中的字段。是否可以只选择字段名而不选择表的整个结构?
SHOW COLUMNS FROM student
【问题讨论】:
标签: mysql
您正在尝试确定表结构?您可以直接查询 MySQL 的 information_schema 数据库中的字段名:
select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='student';
【讨论】:
前面提到的解决方案不是正确的。示例:
CREATE DATABASE db1;
CREATE DATABASE db2;
CREATE TABLE db1.t ( id_1 INT);
CREATE TABLE db2.t ( id_2 INT);
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME ='t';
这将显示:
+-------------+
| COLUMN_NAME |
+-------------+
| id_1 |
| id_2 |
+-------------+
建议表t 有两列,这显然是不正确的。此查询列出了所有数据库中名为t 的表的所有列all。
相反,您应该指定哪个数据库包含要从中选择列名的表t:
SELECT COLUMN_NAME
FROM information_schema.COLUMNS
WHERE
TABLE_NAME = 't' AND
TABLE_SCHEMA = 'db1';
【讨论】:
从 TABLE_NAME 中选择 COLUMN_NAME
例如:ROLLNO 是表 Student 的 column_Name....
从学生中选择 ROLLNO
【讨论】:
information_schema