Php Yii框架-Mssql支架放置不正确

Php Yii框架-Mssql支架放置不正确,php,sql-server-2008,yii,Php,Sql Server 2008,Yii,在使用查询生成器时,Mssql 2008和Yii框架存在一些括号放置错误的问题 $queryCommand = Yii::app()->db->createCommand(); $selectArray = array(); $selectArray[] = 't.id'; $selectArray[] = "CASE t.description WHEN '' THEN t.name ELSE t.name + ' : ' + t.description END AS text"

在使用查询生成器时,Mssql 2008和Yii框架存在一些括号放置错误的问题

$queryCommand = Yii::app()->db->createCommand();
$selectArray = array();
$selectArray[] = 't.id';
$selectArray[] = "CASE t.description  WHEN '' THEN t.name ELSE t.name + ' : ' + t.description END AS text";
$queryCommand->select($selectArray);
$queryCommand->from("table t");
我得到一个奇怪的查询字符串

SELECT [t].[id], [CASE] AS [t].[description  WHEN '' THEN t].[name ELSE t].[name + ' : ' + t].[description END AS text]
FROM [table] [t]
有没有更好的方法来解决这个问题

如果在t.description中添加子字符串函数,则不会添加括号

$queryCommand = Yii::app()->db->createCommand();
$selectArray = array();
$selectArray[] = 't.id';
$selectArray[] = "CASE t.description  WHEN '' THEN t.name ELSE t.name + ' : ' + SUBSTRING(t.description,0,30) END AS text";
$queryCommand->select($selectArray);
$queryCommand->from("table t");
我明白了


使用数组语法有什么原因吗?在检查t.name是否为空字符串时,是否存在逻辑错误,如果为空,则只是在使用它。否则,您将连接名称和描述。你不应该在你的案件陈述中检查描述吗?@Rawrgulmuffins是的,这是有原因的。我简化了查询以显示问题。@billinkc感谢您指出这一点。在我的代码中不是这样的。我为这篇文章重新命名了表格,把它们混在一起了。
SELECT [t].[id], CASE t.description WHEN '' THEN t.name ELSE t.name + ' : ' +    SUBSTRING(t.description,0,30) END AS text
FROM [table] [t]