diff --git a/src/Listeners/PinStickiedDiscussionsToTop.php b/src/Listeners/PinStickiedDiscussionsToTop.php index 5e88cf5..cde0d25 100755 --- a/src/Listeners/PinStickiedDiscussionsToTop.php +++ b/src/Listeners/PinStickiedDiscussionsToTop.php @@ -39,10 +39,15 @@ public function reorderSearch(DiscussionSearchWillBePerformed $event) ->where('discussions.is_sticky', '=', true) ->where('users_discussions.user_id', '=', $event->search->getActor()->id); }); + // might be quicker to do a subquery in the order clause than a join? + $prefix = app('Illuminate\Database\ConnectionInterface')->getTablePrefix(); array_unshift( $query->orders, - ['type' => 'raw', 'sql' => '(is_sticky AND (users_discussions.read_number IS NULL OR discussions.last_post_number > users_discussions.read_number)) desc'] + [ + 'type' => 'raw', + 'sql' => "(is_sticky AND ({$prefix}users_discussions.read_number IS NULL OR {$prefix}discussions.last_post_number > {$prefix}users_discussions.read_number)) desc" + ] ); } }