在 SQL 中,我可以选择 id 可被 4 整除的记录:SELECT id FROM table_name WHERE id%4 = 0;我尝试在 Yii2 活动记录中执行此操作,但失败并出现错误:$model = Verses::find()->where(['%4','id',0])->orderBy('id')->all();有没有关于此的任何方法或文档提示?
3 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
您也可以这样做:
$model = Verses::find()->where(['(id % 4)' => 0])->orderBy('id')->all();
错误显示,Unknown column 'id%4'
为了将其表达为数学表达式,我们将其括在括号中并将其添加到查询中。
蛊毒传说
TA贡献1895条经验 获得超3个赞
最安全的方法是使用Expression
:
$model = Verses::find()->where(new Expression('id%4 = 0'))->orderBy('id')->all();
虽然添加括号->where(['(id % 4)' => 0])
可能有效,但这种行为在最新版本的 Yii 中几乎被删除了,所以我不会太依赖它。
守候你守候我
TA贡献1802条经验 获得超10个赞
我通过尝试和错误找到了解决方案:
$model = Verses::find()->where(['%4=','id',0])->orderBy('id')->all();
换句话说,=
符号应该连接到模运算,即%4=
。
- 3 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消