我有一個Laravel項目,在那裏我有一個列表(運行),我想要有最高長度的運行(整行)。如果我寫這個代碼,我只能得到一個數字(正確的數字)作爲輸出。我需要的user_id是因爲我只想搜索一些運行。爲什麼?Laravel Project,jquery爲什麼我只得到一個數字而不是該行?
$run = DB::table('runs')->where('user_id','=',$id)->max('length');
我有一個Laravel項目,在那裏我有一個列表(運行),我想要有最高長度的運行(整行)。如果我寫這個代碼,我只能得到一個數字(正確的數字)作爲輸出。我需要的user_id是因爲我只想搜索一些運行。爲什麼?Laravel Project,jquery爲什麼我只得到一個數字而不是該行?
$run = DB::table('runs')->where('user_id','=',$id)->max('length');
的問題是,當前的查詢使用max
具有的既定目的:
檢索給定列的最大值。
這是一種聚合方法,不會爲您提供特定的記錄。
取而代之,您需要最長長度的運行記錄。要做到這一點,最好的辦法是將你的數據與第一時間最長的排序並挑選第一個記錄:
$run = DB::table('runs')->where('user_id','=',$id)->orderBy('length', 'desc')->first();
你只能獲得數量,因爲這是你問的:)你寫的DB查詢轉換爲這個:
SELECT MAX(length) FROM runs
WHERE user_id = $id
max()
方法強制聚合,因此你的結果。
對我來說似乎是正確的。+ 1 –