需要在此处修改哪些内容才能获得有效的select语句?
关于Jon的回复,更新了。
<?php echo $form->dropDownList($model, 'GroupId', GxHtml::listDataEx(Group::model()
->findAll(array(
'condition'=>'SC=:stat AND Pri=:pri AND Type=:typ OR Type=:typ2 OR Type=:typ3',
'params'=>array(':stat'=>'A', ':pri'=>'Y', ':typ'=>'A', ':typ2'=>'B', ':typ3'=>'C')),
'GroupId', 'Name'));
?>
哪些事情:
system.db.CDbCommand.query
(SELECT * FROM `group` `t`
WHERE SC=:stat AND Pri=:pri AND Type!=:typ
OR Type!=:typ2 OR Type!=:typ3.
Bound with :stat='A', :pri='Y', :typ='A', :typ2='B', :typ3='C')
这里的问题并非一切都被考虑在内。我可以以某种方式将运算符优先级添加到Yii代码中吗?
答案 0 :(得分:1)
我认为您可以简单地使用括号来获得所需的运算符优先级。
答案 1 :(得分:1)
您可能错误地使用了运算符。
如果typ == 'A'
和typ2 == 'B'
,则考虑
type != 'A' OR type != 'B'
无论true
是什么,都是type
。你可能想要这个:
'condition'=>'SC=:stat AND Pri=:pri AND Type!=:typ AND Type!=:typ2 AND Type!=:typ3',
除此之外,如果出现问题,您可以简单地添加parens来修复优先级。