【发布时间】:2013-01-05 20:44:45
【问题描述】:
我有一个查询要从租用表中选择所有行并以随机顺序显示它们。
DB::table('hire_bikes')->order_by(\DB::raw('RAND()'))->get();
我现在希望能够放
concat(SUBSTRING_INDEX(description, " ",25), "...") AS description
进入查询的SELECT部分,这样我就可以从表中select *得到一个简短的描述。
我知道这可以通过运行原始查询来实现,但我希望能够使用 Fluent 或至少部分 Fluent(如上)来做到这一点。
我该怎么做?
【问题讨论】:
-
我之后的原始等价物是
DB::query('SELECT title, url, image, concat(SUBSTRING_INDEX(description, " ",25),"...") AS description, category FROM hire_bikes ORDER BY RAND()'); -
您可以编辑您的问题。 ;) 顺便说一句,通常您在模型中执行此类逻辑,否则您将失去使用 fluent(与 DBMS 无关)的好处,您可以首先进行原始查询,从而节省您的时间。
-
它是一个查询,我只需要在一个页面上运行,所以不需要它在模型中,它没有连接或依赖等......我知道它很容易通过原始查询完成同样快,我只是希望了解更多有关 Fluent 方法的信息,看看是否可以选择多个列而不选择所有列。 Fluent 似乎只允许您拥有 1 列或所有列,这太可惜了!
-
当然你可以选择特定的列
->get(array('id', 'email as user_email'));,但是你的问题似乎是关于在你的查询中使用函数(可以是特定于DBMS),这是完全不同的。