如何从空的MySQL选择查询结果中检索列名

时间:2015-10-06 06:27:54

标签: mysql

有没有办法检索不返回数据的查询的列名? 此查询的结果将为空。 如果没有结果,有没有办法找到列名?

请注意,我了解使用DESCRIBE的解决方案,并从information_schema.columns中选择column_name,其中table_name =' person&#39 ;; 但我需要一个更灵活的解决方案,以适应这些多列查询。

请注意,我仍在使用原始的PHP MySQL扩展(因此没有MySQLi,也没有PDO)。

4 个答案:

答案 0 :(得分:2)

如果上一个查询的结果为空,则执行以下命令

SHOW columns FROM your-table;

有关详细信息,请查看this.

答案 1 :(得分:0)

你应该, 从COLUMN_NAME INFORMATION_SCHEMA选择COLUMNSTABLE_SCHEMA TABLE_NAME =&#39; yourdb&#39;     和<meta property="og:image" content="<?php echo meta_og_image(); ?>"/> =&#39; yourtablename&#39;;

答案 2 :(得分:0)

我不确定它是否会让你满意,但你可以这样做

SELECT *, COUNT(*) FROM table;

如果查询为空并且您将能够访问所有列,它将返回null个值(您可以忽略的最后一列除外)。这不是正确的方法,从INFORMATION_SCHEMA中选择名称将是更好的解决方案。 请注意,结果已汇总,如果有结果,您需要使用GROUP BY来获得更多结果。

答案 3 :(得分:0)

这样的作品行吗?

select myQuery.*
from (select 1) as ignoreMe
left join (select * from myTable where false) as myQuery on true

如果myQuery中没有数据,则通过左连接到常量表,数据库将返回1行空值。 (而且,如果有数据,它将不会影响输出,因为它是单行的叉积。)