JSON 열 검색을 위한 설득력 있는 쿼리
Laravel에서 JSON 열을 검색하는 것은 어려울 수 있습니다. 이 기사에서는 이메일 주소를 JSON 형식으로 저장하는 "받는 사람" 열과 관련된 특정 시나리오를 자세히 살펴보겠습니다.
문제
다음과 같은 "받는 사람" 열이 주어졌습니다. 다음과 같은 JSON 데이터:
<code class="json">[ { "emailAddress": { "name": "Test", "address": "test@example.com" } }, { "emailAddress": { "name": "Test 2", "address": "test2@example.com" } } ]</code>
목표는 "test@example.com"으로 보낸 이메일을 검색하는 것입니다. whereJsonContains('to->emailAddress->address', 'test@example.com')을 사용하면 결과가 반환되지 않습니다.
해결책
문제가 있습니다. 화살표 연산자(->)를 사용합니다. JSON 배열에서는 화살표 연산자가 지원되지 않습니다. 대신 이중 대괄호 표기법([['emailAddress' => ['address' => 'test@example.com']]])을 사용해야 합니다.
수정된 쿼리는 다음과 같습니다.
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => 'test@example.com']]]) ->get()</code>
이 쿼리는 "받는 사람" 열에 "test@example.com"을 포함하는 모든 이메일을 반환합니다.
위 내용은 Laravel의 JSON 열 내에서 이메일을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!