使用Laravel查询生成器转换MySQL查询

时间:2018-12-07 13:27:41

标签: php mysql laravel

我对MySQL查询有疑问。
我想知道如何使用Laravel QUERY Builder

创建相同的查询
SELECT count( * ) as total_record FROM `player_games` WHERE team_score <  rival_score

谢谢

4 个答案:

答案 0 :(得分:2)

尝试这个

$query = "SELECT count( * ) as total_record FROM `player_games` WHERE team_score <  rival_score";

$count = \DB::select(\DB::raw($query));

秘密方式

DB::table('player_games')->where('team_score','<','rival_score')->count();

答案 1 :(得分:0)

while choose():

     pass

答案 2 :(得分:0)

在Laravel查询生成器中,您可以编写以下代码:

$total_record = DB::table('player_games')->where('team_score', '<', 'rival_score')
                         ->count();

参考:https://laravel.com/docs/5.7/queries

答案 3 :(得分:0)

这里需要注意一个细微的事情:

DB::table('player_games')
     ->where('team_score','<',\DB::raw('`rival_score`'))
     ->count();

之所以需要\DB::raw是因为,如果不这样做,那么where的右侧将被自动假定为一个值并作为绑定传递,但是您需要传递它作为原始DB表达式,以表明它实际上是列名。添加反引号是因为最好对列名进行转义。