提取由查询生成的列名称

时间:2015-03-30 10:22:57

标签: mysql

是否可以获取查询产生的列名?

所以(例如)如果我有这个查询:

SELECT Id AS IdNumber, 
    (SELECT COUNT(*) FROM tab2 WHERE IdRif = T1.Id) AS TotCount 
FROM tab1 T1

我想得到:

IdNumber
TotCount

我看到MySQL query to get column names?(以及其他问题),但我无法将其用于我需要的地方。

2 个答案:

答案 0 :(得分:0)

如果您的查询返回结果,只需使用行中的对象(fetch_object)/ array(fetch_assoc)并使用array_keys($row)

如果没有返回任何行,请使用http://php.net/manual/en/mysqli-result.fetch-field-direct.php

$result = $db->query($sql);
$i = 0;
while ($i < $db->field_count) {
    $info = $result->fetch_field_direct($i++);
    echo $info->name;
}

作为例子

答案 1 :(得分:0)

您可以使用mysql_fetch_array($result,MYSQL_ASSOC)$result->fetch_array(MYSQLI_ASSOC)或您正在使用的任何方法将查询结果提取到关联数组中,以便您的关联数组的Key=>Value对将是您的{{ 1}}。

因此,无论您使用的是ColumnName=>ColumnValue还是mysql,您都将使用相同的逻辑来获取列名称。