sql选择包括columntype

时间:2014-06-28 12:43:29

标签: php sql

我希望,对于我在php中的表单,包括columntype的结果。 有没有办法进行查询并包括列类型?

select * from TableA 
+
SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'yourTableName'

3 个答案:

答案 0 :(得分:0)

可能无法同时选择数据和列类型,因为列类型通常存储在单独的表中(这取决于数据库)。例如,在MySql中:

查询列类型: SELECT COLUMN_NAME,DATA_TYPE 来自INFORMATION_SCHEMA.COLUMNS 哪里      TABLE_NAME ='TableA'

然后你需要解析2个查询的结果并使用php加入它们(我不认为有一种简单的方法可以使用SQL来实现这一点,因为你将使用Nx1结果加入1xN结果)。

有关列类型存储位置的详细信息: http://dev.mysql.com/doc/refman/5.7/en/information-schema.html

答案 1 :(得分:0)

这些本质上是不同的数据集所以我敢打赌你需要编写一个可能相当混乱的存储例程。

您没有解释为什么需要它,但我怀疑您对类型的结果集(而不是源表)没问题。这将包括完全相同的信息加上计算列的类型。

确切的机制取决于您的DBMS和数据库库。您没有提供任何线索,但您的示例代码看起来像MySQL,所以选项包括:

如果您想坚持原始规格,至少可以省去一些麻烦,只需运行两个查询。

答案 2 :(得分:0)

我找到了这个。所以现在我可以组合阵列了!

    $i = 0; 
    while ($column = $query->getColumnMeta($i++)) { 
        print_r($column); 
    }