使用Yii的ORM时如何处理别名?

时间:2017-05-12 18:15:34

标签: yii

$sql = "SELECT  `prod_id` AS  `id` , LOWER(  `prod_iso_code_5` ) AS  `prod_code` FROM `prod_data`";

我有这段代码,虽然文档告诉你在大多数情况下该做什么,但是当你有一个带有字符串作为参数的SQL函数时,他们不会告诉你该怎么做。

我做了以下认为这会有效,但由于文档没有涵盖所有情况,我不是100%肯定。以下命令是否有效?

$result =  $this->mydb->createcommand()
            ->select(array('prod_id AS id', 'LOWER("prod_iso_code_5") as prod_code')
            ->from('prod_data')
            ->queryAll();

1 个答案:

答案 0 :(得分:1)

它不会输出您期望的内容。因为在查询构建器中,您使用了“prod_iso_code_5”作为字符串。哪个被评估为LOWER()函数的字符串。如果你想要小写查询中给出的prod_data.product_iso_code_5列的值,你只需要使用product_iso_code_5或在`(反引号)字符中包装列名

$result =  $this->mydb->createcommand()
            ->select(array('prod_id AS id', 'LOWER(`prod_iso_code_5`) as prod_code')
            ->from('prod_data')
            ->queryAll();