>PHP 프레임워크 >Laravel >laravel에서 DB::raw의 사용법은 무엇입니까?

laravel에서 DB::raw의 사용법은 무엇입니까?

WBOY
WBOY원래의
2022-02-18 11:17:275248검색

laravel에서는 복잡한 SQL 쿼리에 "DB::raw()" 메서드가 사용됩니다. 이 메서드는 쿼리된 결과 집합을 임시 테이블로 처리한 다음 페이징 처리를 위해 laravel의 쿼리 빌더 구문을 사용할 수 있습니다. "DB::raw('함수 또는 필드');".

laravel에서 DB::raw의 사용법은 무엇입니까?

이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 6, Dell G3 컴퓨터.

laravel에서 DB::raw의 사용법은 무엇인가요

프로젝트에서 문제가 발생했습니다. 복잡한 SQL 쿼리의 경우 laravel의 쿼리 생성자를 사용하는 것이 매우 불편합니다. 혼란스럽습니다. 그러면 기본 SQL 문을 사용하여 쿼리하고 싶지만 지금은 laravel의 paginate() 페이징 메서드를 사용할 수 없습니다. DB::raw() 메서드가 유용합니다. 구문의 원리는 쿼리 결과 집합을 임시 테이블로 처리한 다음 페이징 처리를 위해 laravel의 쿼리 빌더 구문을 사용하는 것입니다.

예제 1:

$users = DB::table('users')
                   ->select(DB::raw('count(*) as user_count, status'))
                   ->where(&#39;status&#39;, &#39;<>&#39;, 1)
                   ->groupBy(&#39;status&#39;)
                   ->get();

예제 2:

 DB::table(&#39;someTable&#39;)
->selectRaw(&#39;count(*), min(some_field) as someMin, max(another_field) as someMax&#39;)
->get();

예제 3:

DB::table(&#39;someTable&#39;)->select(
array(
        DB::raw(&#39;min(some_field) as someMin&#39;),
        DB::raw(&#39;max(another_field) as someMax&#39;),
        DB::raw(&#39;COUNT(*) as `count`&#39;)
    )
)->get()

예시 4 :

SELECT 
  (CASE WHEN (gender = 1) THEN &#39;M&#39; ELSE &#39;F&#39; END) AS gender_text 
  FROM users;
$users = DB::table(&#39;users&#39;)
  ->select(DB::raw("
  name,
  surname,  
  (CASE WHEN (gender = 1) THEN &#39;M&#39; ELSE &#39;F&#39; END) as gender_text")
);

【관련 추천:laravel 비디오 튜토리얼

위 내용은 laravel에서 DB::raw의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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