Mik*_*oss 11 mysql yii2 yii2-advanced-app yii2-basic-app
嗨伙计们,我很困惑一件事
我想写下面的查询,yii2
但我无法得到预期的输出
SELECT * FROM user where category_id=5 ORDER BY rand() LIMIT 4
Run Code Online (Sandbox Code Playgroud)
为此,我做了以下
$data= User::find()->where(['category_id'=> 5])->orderBy(['rand()'])->limit(4);
Run Code Online (Sandbox Code Playgroud)
但它会生成如下命令
SELECT * FROM `user` WHERE `category_id`=5 ORDER BY `0` LIMIT 4
Run Code Online (Sandbox Code Playgroud)
哪个不是有效的mysql语句,那么我该如何才能使查询正确?
我的目标是从user
表中获取任意随机的4条记录.
aro*_*hev 23
将其包装到yii\db\Expression中以防止转义并删除数组部分:
use yii\db\Expression;
...
$query = User::find()
->where(['category_id' => 5])
->orderBy(new Expression('rand()'))
->limit(4);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13471 次 |
最近记录: |