我想用ORM查询构建器来实现这个查询:
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END我知道这是可行的:
$products = DB::query(Database::SELECT, '
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END
')->execute();但是它返回mysql db结果,而我更希望有一个ORM列表,否则我将不得不在循环中实例化所有ORM对象,从而导致性能低下……或者...?
有可能吗?ORM 'group_by‘函数看起来非常有限...
发布于 2013-04-30 12:28:28
您应该定义您想要的DB结果的类型:
$products = DB::query(Database::SELECT, '
SELECT * FROM `products`
GROUP BY CASE `products`.`configurable`
WHEN 'yes' THEN `products`.`id_configuration`
ELSE `products`.`id`
END
')
->as_object('Model_Product') // !!
->execute();或者,如果你在模型中使用它,你可以调用->as_object(get_class($this))或->as_object($this)。
https://stackoverflow.com/questions/16282337
复制相似问题