Php 选择带有条件和别名的表达式
在MySql中,您可以有这样一个查询Php 选择带有条件和别名的表达式,php,mysql,yii,Php,Mysql,Yii,在MySql中,您可以有这样一个查询 SELECT d., d.is_new, ( d.distance - 1 ) AS `dist` FROM `table` AS d WHERE d.is_new!='1' HAVING `dist` <= 10 知道我缺少什么吗?尝试在Active Record类中添加公共$dist属性 执行活动记录查找查询时,将对每个结果行调用populateRecord(),并检查模型属性是否存在,或者列名是
SELECT d., d.is_new,
(
d.distance - 1
) AS `dist`
FROM `table` AS d
WHERE d.is_new!='1'
HAVING `dist` <= 10
知道我缺少什么吗?尝试在Active Record类中添加公共$dist属性 执行活动记录查找查询时,将对每个结果行调用populateRecord(),并检查模型属性是否存在,或者列名是否在数据库架构中定义
$model->dist现在应该可以在使用您的作用域的实例上工作。wow添加
public$dist代码>工作!还是不明白为什么。我不太明白医生的解释。很抱歉,我是新手。ActiveRecord需要一个地方来存储结果。与记录的列属性不同,dist
不是模型的属性,因此除非手动提供公共属性,否则赋值不会发生。
public function scopes()
{
return array(
'_distance'=>array(
'alias' => 'd',
'select'=>array('d.id, d.is_new,
(
d.distance - 1
) AS `dist`'
),
'having'=>'`dist` <= 10',
'condition'=>'d.is_new!="1"'
)
);
}
$dataProvider=new CActiveDataProvider(Bla::model()->_distance(), ..... );
class Bla extends CActiveRecord
{
public $dist;
//rest of your model
}