gpt4 book ai didi

mysql - 在 yii2 中按 rand() 排序

转载 作者:IT王子 更新时间:2023-10-28 23:54:19 27 4
gpt4 key购买 nike

我想在 yii2 中编写以下查询,但无法获得预期的输出:

SELECT * FROM user where category_id=5 ORDER BY rand() LIMIT 4

为此,我做了以下工作:

$data= User::find()->where(['category_id'=> 5])->orderBy(['rand()'])->limit(4);

但是它生成如下命令

SELECT * FROM `user` WHERE `category_id`=5 ORDER BY `0` LIMIT 4

哪个不是有效的 mysql 语句,那么我应该怎么做才能正确查询?

我的目标是从 user 表中随机获取 4 条记录。

最佳答案

把它包装成yii\db\Expression防止转义和删除数组部分:

use yii\db\Expression;

...

$query = User::find()
->where(['category_id' => 5])
->orderBy(new Expression('rand()'))
->limit(4);

关于mysql - 在 yii2 中按 rand() 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com