我想将此查询语句转换为 Laravel 查询生成器 带分页
"SELECT images.*,categories.name,categories.slug FROM ( SELECT 1 AS rnk, images.* FROM images WHERE title REGEXP '[[:<:]]{$q}[[:>:]]'
UNION SELECT 2 AS rnk, images.* FROM images WHERE tags REGEXP '[[:<:]]{$q}[[:>:]]' ) images
inner join categories on categories.id = images.categories_id
where status = 'active' ORDER BY rnk"
我使用 Laravel 5.3
最佳答案
完成;)
$subquery = "( SELECT 1 AS rnk, images.* FROM images WHERE title REGEXP '[[:<:]]{$q}[[:>:]]'
UNION SELECT 2 AS rnk, images.* FROM images WHERE tags REGEXP '[[:<:]]{$q}[[:>:]]') query";
$images = Images::select(['categories.name', 'categories.slug', 'images.*'])
->join('categories', 'images.categories_id', '=', 'categories.id')
->join(\DB::raw($subquery), 'query.id', '=', 'images.id')
->where('images.status', 'active' )
->groupBy('images.id')
->orderBy('query.rnk' )
->paginate( $settings->result_request )
->appends(request()->query());
关于php - 通过优先级在单个 Laravel 查询中进行多选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53977779/