如何使这段代码在 Kohana3 框架中工作?我有一个语法问题。
ORM::factory('table1')
->where ( 'id', '=', ceil( DB::expr('rand()') * [SELECT max(id) from table1] ) )
->find();
这就是我想从表中选择随机行的方式。
这适用于小表(包含超过 1000 行),但不适用于大表:
ORM::factory('table1')
->order_by(DB::expr('RAND()'))
->find();
我想要的标准mysql等价物是这样的:
SELECT name
FROM table1 JOIN
(SELECT CEIL(RAND() *
(SELECT MAX(id)
FROM table1)) AS id
) AS r2
USING (id);
那么,如何将其转换为 Kohana3 框架的工作代码?
PS 如果表中没有空洞(没有删除的行),这种方法可以正常工作,这在我的情况下很好。