PHP

[라라벨]이전글, 다음글 한방에 가져오기

에스크리토 2025. 6. 5. 17:13
반응형

이전글과 다음글을 한번에 가져올 수 있도록 서브쿼리를 만들어 보겠다.

 

select c1.*

, (select concat(num,'||',subject) from cboard c2 where c2.num<c1.num order by num desc limit 1) as prevnum

, (select concat(num,'||',subject) from cboard c2 where c2.num>c1.num order by num asc limit 1) as nextnum

from cboard c1 where num=13991;

 

 

아마 이런 모양이 될 것이다. 이것을 라라벨 orm 형식으로 바꿔보자.

 

DB::enableQueryLog();
        $boards = DB::table('cboard as c1')
                    ->select('c1.*'
                    ,DB::raw("(select concat(num, '||', subject) from cboard c2 where c2.num < c1.num order by num desc limit 1) as prevnum")
                    ,DB::raw("(select concat(num, '||', subject) from cboard c2 where c2.num > c1.num order by num asc limit 1) as nextnum"))
                    ->where('c1.num',$bid)->first();
        print_r(DB::getQueryLog());

 

이렇게 DB:raw라는걸 사용해 주어야 한다.

반응형