2016-05-17 109 views
1

我必須獲得通過符號號碼範圍內的行。Laravel 5.1雄辯的地方之間不按預期工作

Image of Table from where query is to be done

查詢:

Mark::select('users_id', 'symbol_no', 'mark_obtained') 
     ->where('subject_trade_id', 2) 
     ->whereBetween('symbol_no', [100, 1000]) 
     ->orderBy('symbol_no') 
     ->get(); 

該查詢返回的數據,但我期待共有9行形成查詢。 如果我轉儲查詢,我發現預期的查詢。

Query Log Image

如果我運行生成的查詢mysql然後炒菜的罰款。

同樣,如果我更改了符號no。範圍是這樣的:

Mark::select('users_id', 'symbol_no', 'mark_obtained') 
     ->where('subject_trade_id', 2) 
     ->whereBetween('symbol_no', [10, 1011]) 
     ->orderBy('symbol_no') 
     ->get(); 

它返回2行這一次,這輸出也是錯誤的。

如果我嘗試改變符號號。範圍和查詢是這樣的:

Mark::select('users_id', 'symbol_no', 'mark_obtained') 
     ->where('subject_trade_id', 2) 
     ->whereBetween('symbol_no', [101, 200]) 
     ->orderBy('symbol_no') 
     ->get(); 

現在它正常工作正常。

+1

您能否提供有關您收到的任何錯誤或爲什麼此代碼不適合您的信息? – Scopey

+0

首先抱歉,我第一次發佈了不完整的任務。現在完成,所以你現在可以知道實際的問題。 它不會返回任何錯誤。只是銀行收款對象。 –

回答

1

實測值的symbol_no的柱規定爲varchar(),它必須是int(),因此,whereBetween()已暫時無法返回預期的數據的問題

通過錯誤。

0

我面臨同樣的問題..您可以檢查數據庫表中的「symbol_no」字段類型,它應該是數字/整數。

+0

謝謝@AKO你是對的,列字段類型是問題的原因。花了幾個小時才發現問題。 –