>  기사  >  백엔드 개발  >  Laravel 5의 Eloquent ORM에서 LIKE를 사용하여 대소문자를 구분하지 않는 검색을 수행하는 방법은 무엇입니까?

Laravel 5의 Eloquent ORM에서 LIKE를 사용하여 대소문자를 구분하지 않는 검색을 수행하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-25 07:13:28274검색

How to Perform Case-Insensitive Searches with LIKE in Laravel 5's Eloquent ORM?

Laravel-5 'LIKE' Equivalent (Eloquent)

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')으로 지정된 사용자 입력이 포함된 값을 검색하고 있습니다.

그러나 제공된 코드는 orWhereLike 메서드가 아닌 orWhere 메서드를 사용합니다. . 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.