집 >데이터 베이스 >MySQL 튜토리얼 >Laravel\'To\' 열의 JSON 배열 내에서 이메일을 검색하는 방법은 무엇입니까?
Laravel에서 JSON 열 검색
Laravel에서 JSON 열로 작업할 때 특정 값을 검색하는 것이 어려울 수 있습니다. 다음은 "받는 사람" 열에 저장된 JSON 배열 내에서 이메일을 찾을 때 자주 발생하는 문제에 대한 해결책입니다.
문제:
"이메일" 테이블 에서 JSON 유형의 "받는 사람" 열에는 이메일 주소를 나타내는 중첩 배열이 포함되어 있습니다. 목표는 특정 수신자에게 보낸 모든 이메일 모음을 검색하는 것입니다.
실패한 시도:
Laravel의 whereJsonContains 메소드를 사용하여 처음 검색을 시도했지만 일치하는 항목이 없습니다. . 검색어는 다음과 같이 "번역됨":
select * from `emails` where json_contains(`to`->'$."emailAddress"."address"', '\"[email protected]\"'))
해결책:
성공적인 검색의 핵심은 화살표 연산자(->)가 그렇지 않다는 점을 이해하는 데 있습니다. 배열로 작업합니다. 배열과 관련된 JSON 검색의 경우 다음 구문을 사용하십시오.
DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get()
이 쿼리는 지정된 수신자의 주소로 전송된 모든 이메일을 올바르게 식별하고 반환합니다.
위 내용은 Laravel\'To\' 열의 JSON 배열 내에서 이메일을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!