繁体   English   中英

CDbCriteria中的Yii按位运算

[英]Yii bitwise operations in CDbCriteria

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

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

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

但是,这不起作用,我需要使用其他功能吗?

您是否尝试过使用由compare() 插入的addCondition ()? 我想象这样的事情应该可以工作(尽管尚未测试):

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM