Yii按位运算在CDbCriteria中

时间:2011-11-08 14:57:50

标签: php sql yii

我在使用CDbCriteria查询数据库时尝试使用按位运算,但没有运气;我在::compare doc中的位运算符上找不到任何内容。我正在寻找这样的东西:

//只抓取未过期的用户。

$criteria = new CDbCriteria;
$criteria->compare('flags','& ' . self::USER_EXPIRED . ' = 0',true);

然而这不起作用,我需要使用不同的功能吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试过addCondition()使用compare()?我想这样的事情应该有用(虽然还没有测试过):

$criteria = new CDbCriteria;
$criteria->addCondition('flags & ' . self::USER_EXPIRED . ' = 0');

出于好奇:你为什么要用比特代表这样的信息?您可以使用具有枚举值的专用列(已过期)(“是”,“否”),并且您的代码将更具可读性和可维护性。