簡體   English   中英

使用Laravel查詢生成器轉換MySQL查詢

[英]Convert MySQL query using Laravel Query Builder

我有一個關於MySQL查詢的問題。
我想知道如何使用Laravel QUERY Builder創建相同的查詢

SELECT count( * ) as total_record FROM `player_games` WHERE team_score <  rival_score

謝謝

試試這個

$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();
$total_record = DB::table('player_games')->where('team_score', '<', 'rival_score')
                         ->count();

在Laravel查詢生成器中,您可以編寫以下代碼:

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

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

這里需要注意一個細微的事情:

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

之所以需要\\DB::raw是因為,如果不需要,則where的右側將被自動假定為一個值並作為綁定傳遞,但是您需要將其作為原始傳遞DB表達式,表明它實際上是列名。 添加反引號是因為最好對列名進行轉義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM