>  기사  >  백엔드 개발  >  Eloquent와 Fluent를 사용하여 Laravel에서 임의의 행을 선택하는 방법은 무엇입니까?

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

Barbara Streisand
Barbara Streisand원래의
2024-11-12 00:42:03485검색

How to Select Random Rows in Laravel Using Eloquent and Fluent?

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

대규모 데이터 세트로 작업할 때 데이터베이스에서 임의 행을 검색해야 하는 경우가 종종 있습니다. 사전 계산을 수행할 필요 없이. Laravel은 Eloquent 및 Fluent 인터페이스를 모두 사용하여 이를 달성하기 위한 여러 옵션을 제공합니다.

Eloquent

Laravel 5.2 이상에서는 inRandomOrder() 메서드를 제공합니다.

User::inRandomOrder()->get();

이 메서드는 지정된 모델에서 모든 임의 행의 컬렉션을 반환합니다. 검색되는 행 수를 제한하려면 다음과 같이limit() 메서드를 사용하세요.

User::inRandomOrder()->limit(5)->get();

단일 임의 행을 검색하려면 first() 메서드를 사용하세요.

User::inRandomOrder()->first();

이전 버전의 경우 Laravel(4.2.7 - 5.1)에서는 orderByRaw() 메소드를 사용할 수 있습니다:

User::orderByRaw("RAND()")->get();

Laravel 버전 4.0 - 4.2.6, 사용:

User::orderBy(DB::raw('RAND()'))->get();

Fluent

Laravel 5.2 이전 버전에서는 order_by() 메서드가 DB와 함께 사용되었습니다. ::raw() 도우미 function:

User::order_by(DB::raw('RAND()'))->get();

추가 고려 사항

orderBy() 메서드는 현재 ASC 또는 DESC 이외의 인수를 허용하지 않는다는 점에 유의하는 것이 중요합니다. 따라서 임의의 행을 선택하려면 orderByRaw() 메서드나 inRandomOrder() 메서드를 사용해야 합니다.

성능 고려 사항

많은 수의 행을 검색할 경우 성능에 미치는 영향을 고려하는 것이 중요합니다. inRandomOrder() 메서드를 사용하면 무작위 순서를 생성하기 위해 추가 하위 쿼리가 필요하지 않으므로 orderByRaw() 메서드를 사용하는 것보다 더 효율적일 수 있습니다.

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

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