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