Zend framework2 ZF2-使用CONCAT进行选择

Zend framework2 ZF2-使用CONCAT进行选择,zend-framework2,Zend Framework2,我正试图做出如下选择: 从联系人中选择c.*,CONCATc.provider\u id,,c.name作为c 所以,我在写这样的东西 $sql = new Sql($this->adapter); $query = $sql->select() ->from(array('c' => 'contact')) ->columns(array("CONCAT(c.provider_id,'#',c.name"), fal

我正试图做出如下选择:

从联系人中选择c.*,CONCATc.provider\u id,,c.name作为c

所以,我在写这样的东西

$sql = new Sql($this->adapter);
        $query = $sql->select()
        ->from(array('c' => 'contact'))
        ->columns(array("CONCAT(c.provider_id,'#',c.name"), false)
但结果是:

SELECT `id`, `name`,  CONCAT(c.provider_id,'#',c.name) AS `data` FROM `contact` AS `c`
选择c``CONCATc.provider\u id,,c.name作为 conctc.provider\u id,,c.联系人的姓名,c

我做错了什么?
谢谢你的帮助

如果需要使用MySQL函数或任何其他不希望自动转义的函数,请检查数据库表达式。一些例子:


当我必须从表中提取一些列并添加Sql函数时,我通常使用以下代码:

$sql = new Sql($this->adapter);
$query = $sql->select()
    ->from(array('c' => 'contact'))
    ->columns(array(
        'id', 'name', 'data' => new Expression('CONCAT(c.provider_id,'#',c.name)')
    )
);
Expression是Zend\Db\Sql\Expression的一个实例,结果是:

SELECT `id`, `name`,  CONCAT(c.provider_id,'#',c.name) AS `data` FROM `contact` AS `c`

是双引号放错地方了吗?->columnsarrayCONCATc.provider\u id,,c.name,false应为->columnsarrayCONCATc.provider\u id,,c.name,false签出Zend\Db\Sql\Expression。我没时间了,但我想这可以让你开始;谢谢回复!塞尔皮奥,你说得对,有个语法错误@山姆,你也是对的,伙计!答案是->columnsarray'*',新表达式concatc.provider\u id,,c.name作为数据;您应该将您的答案添加为实际答案,以帮助人们找到答案:-