[英]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.