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라는걸 사용해 주어야 한다.
반응형