在Yii中使用CDb命令时,如何将两列连接为一列并在它们之间留有空格


How to concate two columns as one with a space betwen them while using CDbCommands in Yii?

我编写的查询是:

Yii::app()->db->createCommand($sql)->queryAll();

其中

$sql= 'SELECT `EMAIL` as `EMAIL_ADDRESS`, concat(`FIRST_NAME`, `' '` ,`LAST_NAME`) as `FULL_NAME`, `PHONE_NUMBER` FROM `claim_request`';

我想做的是FULL_NAME=Mark Taylor。但是CDbcommand并没有添加空格,而是将输出作为FULL_NAME=MarkTaylor。

顺便说一句,CONCAT会做你想做的事,但它有一些局限性,因为只有当数据库中同时存在FIRST_NAMELAST_NAME时,它才会给出正确的结果。如果其中任何一个是NULL,那么它将在结果中给出null,所以如果你认为LAST_NAME对一些用户来说可能是空的,我建议使用CONCAR_WS

$sql= 'SELECTE MAIL as EMAIL_ADDRESS, CONCAT_WS(" ",FIRST_NAME,,LAST_NAME) as FULL_NAME, PHONE_NUMBER FROM claim_request';

欲了解更多信息,请阅读http://www.w3resource.com/mysql/string-functions/mysql-concat_ws-function.php

另请参阅此问题以了解更多信息,如果任何字段包含NULL ,MySQL CONCAT将返回NULL

使用这个,

$sql= 'SELECTE MAIL as EMAIL_ADDRESS, concat(FIRST_NAME," ",LAST_NAME) as FULL_NAME, PHONE_NUMBER FROM claim_request';

您可以使用双引号而不是单引号。。。