>데이터 베이스 >MySQL 튜토리얼 >Laravel\'To\' 열의 JSON 배열 내에서 이메일을 검색하는 방법은 무엇입니까?

Laravel\'To\' 열의 JSON 배열 내에서 이메일을 검색하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-29 04:21:29822검색

How to Search for Emails within a JSON Array in Laravel's

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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