如何将所有行和列名称作为第一行

时间:2015-02-18 09:30:48

标签: mysql sql

使用单个查询,如何获取表的所有行以及列名。这样我的第一行就会包含列名。 如何在mysql中执行此操作。我想在节点应用程序中使用结果

更新: 我正在处理我在节点j上做的应用程序。我有一个要求,我必须在我的UI中显示我的整个表视图。如果我使用select * from table name,我将只得到行作为结果。我还需要另一个调用来获取列名。我只是检查我们是否可以对单个查询执行相同操作,以便我可以从node.js一次调用mysql中获取所有内容

3 个答案:

答案 0 :(得分:1)

我不确定这是否是您正在寻找的机器人,但请试试这个:

select column_name from information_schema.columns where table_name='table'

同时检查INFORMATION_SCHEMA Tables

您可以尝试的另一件事是显示字段名称:

SHOW FIELDS FROM table;

答案 1 :(得分:1)

如果知道列名,可以使用简单的UNION:

SELECT 'firstname', 'lastname' UNION
SELECT firstname, lastname FROM people

结果:

+----+-----------+-------------+
|    | firstname |  lastname   |
+----+-----------+-------------+
|  1 | firstname | lastname    |
|  2 | Kenny     | Rogers      |
|  3 | Dolly     | Parton      |
|  4 | Michael   | Jackson     |
|  5 | Donald    | Trump       |
+----+-----------+-------------+

DEMO: http://rextester.com/TYOD33589

如果您不知道列名,可以使用prepared statements选择指定表中的所有列名,并将它们连接成可在查询中执行的字符串:

SET @sql = NULL;

SELECT CONCAT("'", GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR "', '"), "'") 
  INTO @sql
  FROM information_schema.columns
  WHERE table_schema = 'databasename' AND table_name = 'people';

SET @sql = CONCAT('SELECT ', @sql, ' UNION SELECT * FROM people');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

DEMO: http://rextester.com/NRWP39999

注意:将databasename替换为您的数据库名称,将people替换为上述语句中的表名称。

答案 2 :(得分:-2)

如果我的问题正确,这可以帮助你

Select * from table_name;

谢谢!