使用Laravel 5 的Eloquent ORM 搜尋資料庫記錄時,where 方法可以與LIKE 運算子一起使用執行不區分大小寫的比較。然而,Laravel 中此運算子的語法與標準 SQL LIKE 語法不同。
問題:
開發人員正在嘗試使用 Laravel 5 的 Eloquent 執行以下查詢ORM:
BookingDates::where('email', Input::get('email'))->orWhere('name', 'like', Input::get('name'))->get()
但是,沒有回傳任何結果。開發人員不確定為什麼 orWhereLike 子句不符合任何結果。
答案:
orWhereLike 語法接受兩個參數:要搜尋的列名和搜尋內容學期。在本例中,將在 name 欄位中搜尋包含由 Input::get('name') 指定的使用者輸入的值。
但是,提供的程式碼使用 orWhere 方法,而不是 orWhereLike 方法。要使用LIKE 執行不區分大小寫的搜索,正確的語法是:
orWhere('name', 'like', '%' . Input::get('name') . '%')
此程式碼將產生以下MySQL 語句:
SELECT * FROM booking_dates WHERE email='[email protected]' OR name LIKE '%John%'
透過使用百分號(%)在搜尋字詞中,查詢將符合名稱列包含指定字串的任何記錄,無論其在列值中的位置為何。
以上是如何在 Laravel 5 的 Eloquent ORM 中使用 LIKE 執行不區分大小寫的搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!