选择或返回";“字段”;MySQL中查询(非表)中的名称

选择或返回";“字段”;MySQL中查询(非表)中的名称,mysql,perl,pivot,Mysql,Perl,Pivot,我在MySQL中有一个动态轴心(见这个问题:) 我想知道列/As/字段的名称,就像它是一个表一样,并且我查询了信息\u模式(如果这是一个真实的表,就很容易:) 但是,我找不到任何问题或对函数的引用,也找不到从查询中获取列/As/字段名的SELECT选项。这可能吗?如果是,怎么做 使用Perl访问MySQL()。因此,将其翻转过来。。。我们知道固定柱。因此,如果我们使用与创建枢轴相同的基本查询,我们可以得到一组名称 SET @sql = NULL; SELECT GROUP_CONCAT(qrv

我在MySQL中有一个动态轴心(见这个问题:)

我想知道列/As/字段的名称,就像它是一个表一样,并且我查询了信息\u模式(如果这是一个真实的表,就很容易:)

但是,我找不到任何问题或对函数的引用,也找不到从查询中获取列/As/字段名的SELECT选项。这可能吗?如果是,怎么做


使用Perl访问MySQL()。

因此,将其翻转过来。。。我们知道固定柱。因此,如果我们使用与创建枢轴相同的基本查询,我们可以得到一组名称

SET @sql = NULL;

SELECT GROUP_CONCAT(qrv.req_name) INTO @sql
    FROM (SELECT qrt.req_name FROM qual_requirment_values qrv JOIN qual_requirment_types qrt ON qrt.id = qrv.req_type_id) qrv;

SET @sql = CONCAT('r.rank,r.member_type,im.name,qrv.grouping,', @sql);

SELECT @sql;
然后可以将其拆分为一个数组并使用


似乎还有很长的路要走,但如果没有其他东西,我的申请就可以用了。似乎效率极低!:)

所以,把这个翻过来。。。我们知道固定柱。因此,如果我们使用与创建枢轴相同的基本查询,我们可以得到一组名称

SET @sql = NULL;

SELECT GROUP_CONCAT(qrv.req_name) INTO @sql
    FROM (SELECT qrt.req_name FROM qual_requirment_values qrv JOIN qual_requirment_types qrt ON qrt.id = qrv.req_type_id) qrv;

SET @sql = CONCAT('r.rank,r.member_type,im.name,qrv.grouping,', @sql);

SELECT @sql;
然后可以将其拆分为一个数组并使用


似乎还有很长的路要走,但如果没有其他东西,我的申请就可以用了。似乎效率极低!:)

多亏了@OllieJones,这才是更好的答案。用于访问MySQL的数据库接口应该提供一种方法

在我的例子(Perl)中,答案如下:

进一步回答,这是MySQL包中的完整方法。do()是在AoA中返回查询的通用DBI方法。调整该方法以创建do_fieldNames()


多亏了@OllieJones,这才是更好的答案。用于访问MySQL的数据库接口应该提供一种方法

在我的例子(Perl)中,答案如下:

进一步回答,这是MySQL包中的完整方法。do()是在AoA中返回查询的通用DBI方法。调整该方法以创建do_fieldNames()


使用临时桌子怎么样?只是一个想法,我不确定
信息\u模式
是否会选择您使用的宿主语言?(Java?PHP?)!深入研究:fetchrow_array()。使用临时表怎么样?只是一个想法,我不确定
信息\u模式
是否会选择您使用的宿主语言?(Java?PHP?)!深入查看:fetchrow\u array()。
## Tested Method
sub do_fieldNames {
    my ($self, $sql, $has_results) = @_;
    my ($sth, $rv, @row, @query_results);

    ## Execute the SQL statement
    $sth = $$self->prepare($sql);
    $rv = $sth->execute or &error(3306, __LINE__, __FILE__, $sql, $$self->errstr);
    return undef unless $rv > 0;

    ## SOLUTION >> Field Name arrayref, part of the standard included DBI Perl Module
    my $field_name_arrayref = $sth->{NAME};

    ## Parse the results
    if ($has_results || $sql =~ /^select/i) { 
        while (@row = $sth->fetchrow_array) {
            push @query_results, [ @row ];      
        }
    }

    ## Return results
    return (\@query_results, $field_name_arrayref) ;

}