簡體   English   中英

Laravel 5.6雄辯的whereDate和WhereRaw錯誤

[英]Laravel 5.6 eloquent whereDate and WhereRaw error

我正在嘗試查找今天創建的所有記錄,並以1開頭的functional_id列。

我收到以下語法錯誤:

SQLSTATE [42000]:語法錯誤或訪問沖突:1064 SQL語法有錯誤; 檢查與您的MariaDB服務器版本相對應的手冊以獲取正確的語法,以在第1行的'WHEREfunctional_id LIKE“ 1%”'附近使用(SQL:從image_requests中選擇count(*)作為匯總,其中date( created_at )= 2019-01 -24 00:00:00和WHEREfunctional_id類似於“ 1%”)

我雄辯的代碼:

$counter = ImageRequest::whereDate('created_at', $date)->whereRaw('WHERE functional_id LIKE "1%"')->count();

這應該工作:

$counter = ImageRequest::whereDate('created_at', $date)
    ->where('functional_id', 'like', '1%')
    ->count();

我認為問題在於多余的" 。但是,在這種情況下,無需使用whereRaw()where()足以解決此類錯誤:)

編輯:根據您的評論,如果您要檢查第十二個字符是否為1 ,則應該可以進行以下操作:

$counter = ImageRequest::whereDate('created_at', $date)
    ->whereRaw('SUBSTRING(funtional_id, 12, 1) = 1')
    ->count();

暫無
暫無

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

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