如何订购查询
How to Order a query
我有一个数组 $sorted_array
它的值是
Array ( [0] => 3 [1] => 1 [2] => 6 )
现在基于$sorted_array我创建了一个数组
$first_array = Yii::app()->db->createCommand()
->select('*')
->from('form_fields')
->where(array('not in', 'id', $sorted_array))
->andWhere('form_id=:form_id', array(':form_id'=>$form_id))
->queryAll();
$sorted_array
值是 table form_fields
.
的 id(主键)
当我 运行 这个查询时,我得到数组 $first_array
但不是我想要的顺序。即,我将按顺序获得一个数组 $id=1,3,6.
现在我想要的顺序是 3,1,6(与 $sorted_array
完全一样)。我怎样才能按顺序得到 $first_array
?
您可以使用 ->order() 以这种方式将订单 ( 'id' ) 添加到您的代码中:
$first_array = Yii::app()->db->createCommand()
->select('*')
->from('form_fields')
->where(array('not in', 'id', $sorted_array))
->andWhere('form_id=:form_id', array(':form_id'=>$form_id))
->order('id')
->queryAll();
否则,如果无法使用查询构建器构建您需要的查询,您可以使用
Yii::app()->db->createCommand("select * from your_table")->queryAll();
和绑定参数
Yii::app()->db->createCommand(
'select * from your_table where yuor_field =:your_param')->
bindValue('your_param',$yuor_value)->queryAll();
此 returns 所有行使用指定的 SQL 语句
$sql = "select * from form_fields
where id not in (3,1,6)
and form_id = " . $form_id .
"order by field(id, 3,6,1);";
$first_array = Yii::app()->db->createCommand($sql)->queryAll();
我有一个数组 $sorted_array
它的值是
Array ( [0] => 3 [1] => 1 [2] => 6 )
现在基于$sorted_array我创建了一个数组
$first_array = Yii::app()->db->createCommand()
->select('*')
->from('form_fields')
->where(array('not in', 'id', $sorted_array))
->andWhere('form_id=:form_id', array(':form_id'=>$form_id))
->queryAll();
$sorted_array
值是 table form_fields
.
当我 运行 这个查询时,我得到数组 $first_array
但不是我想要的顺序。即,我将按顺序获得一个数组 $id=1,3,6.
现在我想要的顺序是 3,1,6(与 $sorted_array
完全一样)。我怎样才能按顺序得到 $first_array
?
您可以使用 ->order() 以这种方式将订单 ( 'id' ) 添加到您的代码中:
$first_array = Yii::app()->db->createCommand()
->select('*')
->from('form_fields')
->where(array('not in', 'id', $sorted_array))
->andWhere('form_id=:form_id', array(':form_id'=>$form_id))
->order('id')
->queryAll();
否则,如果无法使用查询构建器构建您需要的查询,您可以使用
Yii::app()->db->createCommand("select * from your_table")->queryAll();
和绑定参数
Yii::app()->db->createCommand(
'select * from your_table where yuor_field =:your_param')->
bindValue('your_param',$yuor_value)->queryAll();
此 returns 所有行使用指定的 SQL 语句
$sql = "select * from form_fields
where id not in (3,1,6)
and form_id = " . $form_id .
"order by field(id, 3,6,1);";
$first_array = Yii::app()->db->createCommand($sql)->queryAll();