使用单个查询,如何获取表的所有行以及列名。这样我的第一行就会包含列名。 如何在mysql中执行此操作。我想在节点应用程序中使用结果
更新: 我正在处理我在节点j上做的应用程序。我有一个要求,我必须在我的UI中显示我的整个表视图。如果我使用select * from table name,我将只得到行作为结果。我还需要另一个调用来获取列名。我只是检查我们是否可以对单个查询执行相同操作,以便我可以从node.js一次调用mysql中获取所有内容
答案 0 :(得分:1)
我不确定这是否是您正在寻找的机器人,但请试试这个:
select column_name from information_schema.columns where table_name='table'
您可以尝试的另一件事是显示字段名称:
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;
谢谢!