2

我是 Laravel 的新手,我有一个适当的 SQL 语句(适用于 PHPMyAdmin 和 Navicat),我可以得到结果。我想要做的是,我想在 Laravel 中使用这些语句而不使用 DB::raw();。

任何帮助将不胜感激。

    Select 
        rmm.message,
        count(rmm.message) as number, 
        receivedTime as time

    FROM
           rcs rcs, rmm rmm
    WHERE
          rmm.smsCid =  rcs.smsCid AND  rmm.receivedTime LIKE '%2013-04-01%' AND length('rmm.message') > '3'

    GROUP BY(rmm.message)
4

2 回答 2

4

或者,您可以使用Fluent Query Builder。这是我的尝试,当然没有检查,因为我手头没有你的数据结构。希望足以让你开始:

DB::table('rcs') // SELECT FROM rcs
    ->join('rmm', 'rmm.smsCid', '=', 'rcs.smsCid') // Simple INNER join
    ->where('rmm.receivedTime', 'LIKE', '%2013-04-01%')
    ->where(DB::raw('LENGTH(rmm.message)'), '>', 3)
    ->get(array(DB::raw('COUNT(rmm.message)'), 'rmm.message', 'receivedTime')); // Get only the columns you want
于 2013-04-01T15:24:06.573 回答
2

您可以使用它DB::query()来运行您的查询。这将调用活动数据库连接上的查询方法。

于 2013-04-01T15:18:12.943 回答