>백엔드 개발 >PHP 튜토리얼 >Eloquent 또는 Fluent를 사용하여 Laravel에서 임의의 행을 검색하는 방법은 무엇입니까?

Eloquent 또는 Fluent를 사용하여 Laravel에서 임의의 행을 검색하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-16 12:31:03474검색

How to Retrieve Random Rows in Laravel Using Eloquent or Fluent?

Laravel에서 Eloquent 또는 Fluent를 사용하여 임의 행 선택

데이터베이스 테이블에서 임의 행을 검색하는 것은 웹 애플리케이션에서 일반적인 작업입니다. Laravel은 Eloquent 또는 Fluent 쿼리 빌더를 사용하여 이 작업을 수행하는 여러 가지 방법을 제공합니다.

Eloquent(Laravel >= 5.2) 사용

Laravel 5.2부터 프레임워크는 임의의 행을 검색하는 편리한 방법을 제공하는 inRandomOrder() 메서드를 도입했습니다. 다음 코드는 이를 사용하는 방법을 보여줍니다.

$randomUsers = User::inRandomOrder()->get();

특정 개수의 무작위 레코드를 검색하려면limit() 메서드를 사용합니다.

$randomUsers = User::inRandomOrder()->limit(5)->get();

또는 무작위를 사용할 수도 있습니다. () 단일 무작위 레코드를 검색하기 위해 컬렉션에서 제공하는 메서드:

$randomUser = User::all()->random();

Fluent 사용 (Laravel < 5.2)

Laravel 5.2 이전 버전의 경우 Fluent의 orderByRaw() 메서드를 사용하여 결과를 무작위로 정렬할 수 있습니다.

$randomUsers = User::orderByRaw(DB::raw('RAND()'))->get();<p><strong>다음을 사용합니다. Fluent를 사용한 SQL</strong></p>
<p>순수한 SQL 사용을 선호하는 경우 SQL의 경우 Fluent 문에 다음 쿼리를 작성할 수 있습니다.</p>
<pre class="brush:php;toolbar:false">$randomUsers = DB::table('users')->orderByRaw('RAND()')->get();

이 접근 방식을 사용하려면 초기 쿼리 전에 레코드 수를 계산해야 하므로 대규모 데이터 세트에는 비효율적일 수 있습니다.

결론

Laravel에서 임의의 행을 선택하는 것은 Eloquent 또는 Fluent를 사용하여 수행할 수 있습니다. Eloquent의 inRandomOrder() 메소드는 Laravel 5.2 이상에서 이를 수행하는 가장 효율적이고 간단한 방법을 제공합니다. 이전 버전의 경우 Fluent의 orderByRaw() 메서드는 몇 가지 제한 사항이 있지만 실행 가능한 대안을 제공합니다.

위 내용은 Eloquent 또는 Fluent를 사용하여 Laravel에서 임의의 행을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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