> 데이터 베이스 > MySQL 튜토리얼 > Laravel의 JSON 열 내에서 이메일 주소를 쿼리하는 방법은 무엇입니까?

Laravel의 JSON 열 내에서 이메일 주소를 쿼리하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-29 00:24:02
원래의
889명이 탐색했습니다.

How to Query for Email Addresses within a JSON Column in Laravel?

Laravel의 JSON 열에서 데이터 검색

문제:

Laravel 애플리케이션에 to 열이 있습니다. 이메일 테이블에 JSON 유형이 있으며 이메일 주소를 다음 형식으로 저장합니다.

<code class="JSON">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "[email&#160;protected]"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "[email&#160;protected]"
        }
    }
]</code>
로그인 후 복사

"[email protected]"로 전송된 모든 이메일 컬렉션을 검색해야 합니다.

해결책:

Laravel의 Eloquent를 사용하면 whereJsonContains 메소드를 사용하여 JSON 열 내의 특정 값을 검색할 수 있습니다. 그러나 초기 쿼리:

<code class="php">DB::table('emails')->whereJsonContains('to->emailAddress->address', '[email&#160;protected]')->get();</code>
로그인 후 복사

는 화살표 연산자(->)가 배열 키 내에서 유효하지 않기 때문에 일치 항목을 반환하지 않습니다. 이 문제를 해결하려면 대신 중첩 배열을 사용하십시오.

<code class="php">DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => '[email&#160;protected]']]])
   ->get();</code>
로그인 후 복사

이 쿼리는 "[email protected]"와 동일한 이메일 주소를 올바르게 검색하고 원하는 컬렉션을 반환합니다.

위 내용은 Laravel의 JSON 열 내에서 이메일 주소를 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿