Php (Yii)CDbCommand无法执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:

Php (Yii)CDbCommand无法执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:,php,mysql,sql,yii,Php,Mysql,Sql,Yii,我正在尝试执行此sql查询,但出现异常…我在PhpMyAdmin中尝试了该查询,结果正常 <?php $criteria=new CDbCriteria; $criteria->condition='select min(purchase_order_id) from purchase_order where purchase_order_id >'.$model->purchase_order_id; $nextfield

我正在尝试执行此sql查询,但出现异常…我在PhpMyAdmin中尝试了该查询,结果正常

<?php
        $criteria=new CDbCriteria;
        $criteria->condition='select min(purchase_order_id) from purchase_order where purchase_order_id >'.$model->purchase_order_id;
        $nextfield = \POrder::model()->model()->findAll($criteria);
           ?>

例外是,,
CDbCommand无法执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行“从purchase\u order中选择min(purchase\u order\u id),其中purchase\u order\u id>65”附近使用的正确语法。执行的SQL语句是:SELECT*FROM
purchase\u order
t
其中SELECT min(purchase\u order\u id)FROM purchase\u order\u id>65

如果您只需要查询结果,请执行以下操作:

Yii::app()->db->createCommand("
SELECT MIN(purchase_order_id) FROM purchase_order
WHERE purchase_order_id > :purchase_order_id
")->queryScalar(array('purchase_order_id'=>$model->purchase_order_id'));
$criteria=new CDbCriteria;
$criteria->addCondition("t.purchase_order_id = (
SELECT MIN(purchase_order_id)
FROM purchase_order
WHERE purchase_order_id > :previous_purchase_order_id)");
$criteria->params['previous_purchase_order_id'] = $model->purchase_order_id;
$nextfield = \POrder::model()->model()->find($criteria);
这将返回您将从phpmyadmin或mysql工作台获得的唯一值

如果需要与该采购订单id对应的模型记录,则可以执行以下操作:

Yii::app()->db->createCommand("
SELECT MIN(purchase_order_id) FROM purchase_order
WHERE purchase_order_id > :purchase_order_id
")->queryScalar(array('purchase_order_id'=>$model->purchase_order_id'));
$criteria=new CDbCriteria;
$criteria->addCondition("t.purchase_order_id = (
SELECT MIN(purchase_order_id)
FROM purchase_order
WHERE purchase_order_id > :previous_purchase_order_id)");
$criteria->params['previous_purchase_order_id'] = $model->purchase_order_id;
$nextfield = \POrder::model()->model()->find($criteria);

我假设只有一个这样的模型,所以我将
findAll
更改为
find

这是一篇错误的帖子对不起…但我仍然认为这不是where子句。我相信这个想法是使用
$criteria->condition
,而不是指定整个查询。我能做些什么来执行我的查询?