【问题标题】:Selecting column alias filled with NULLs with Zend_Db使用 Zend_Db 选择用 NULL 填充的列别名
【发布时间】:2014-09-23 08:34:58
【问题描述】:

有什么方法可以选择 NULL 作为 Zend_db 的列。 为了清楚起见,您可以编写一个查询:

SELECT id, name, age, NULL as ssn from dummy_table; 

结果将有 4 列 id、name、age 和 ssn(填充为 null)。 Zend_Db 中有没有办法做到这一点。我的猜测是:

$columns = [
    'id' => 'id',
    'name' => 'name',
    'age' => 'age',
    NULL => 'ssn'
];
$select = $this->_db->select();
$select
    ->from('dummy_table', $columns)

但这不会起作用,它会生成:

SELECT `dummy_table`.`id` AS `id`, `dummy_table`.`name` AS `name`, `dummy_table`.`age` AS `age`, `dummy_table`.`ssn` AS `` FROM `dummy_table`;

此查询将失败。有什么方法可以只使用 Zend_Db 来做到这一点($this->_db->query('') 不是一个选项)?

【问题讨论】:

    标签: mysql zend-framework


    【解决方案1】:

    您尝试过使用new Zend_Db_Expr('NULL') 吗?

    你可以这样做:

    $null = new Zend_Db_Expr('NULL');
    
    $columns = [
        'id' => 'id',
        'name' => 'name',
        'age' => 'age',
        $null => 'ssn'
    ];
    $select = $this->_db->select();
    $select
        ->from('dummy_table', $columns);
    

    【讨论】:

    • 它忽略该列:SELECT dummy_table.id AS id, dummy_table.name AS name, dummy_table.age AS @9876531 F dummy_table;
    • 并且使用带引号的 'NULL' 不起作用?比如 $columns = [ 'id' => 'id', 'name' => 'name', 'age' => 'age', 'NULL' => 'ssn' ];
    • SELECT dummy_table.id AS id, dummy_table.name AS name, dummy_table.age AS dummy_table.@9 987654343@ AS NULL FROM dummy_table;这将起作用,但该列将被命名为 NULL 而不是我需要的实际别名。我想一个解决方案是替换生成的 php 数组中的键,但我真的想要一个在查询中选择它的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 2015-08-24
    • 1970-01-01
    相关资源
    最近更新 更多