sql查询到子查询的laravel查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql查询到子查询的laravel查询相关的知识,希望对你有一定的参考价值。
请帮助如何使这个sql正确,不能使用两个选择和RAND
SELECT * FROM (SELECT * FROM `galleries`
WHERE domain_id = 13 AND is_deleted = 0
ORDER BY galleries.id DESC LIMIT 30) q
ORDER BY RAND()
喜欢这个
$galleries = DB::table('galleries')->select( DB::raw('galleries.*') )
->where( 'domain_id', 13 )
->where( 'is_deleted', 0 ) ...
答案
您可以将查询重写为
SELECT * FROM `galleries`
WHERE domain_id = 13
AND is_deleted = 0
ORDER BY id DESC,RAND()
LIMIT 30
在laravel的东西
$galleries = DB::table('galleries')
->select( DB::raw('galleries.*') )
->where( 'domain_id', 13 )
->where( 'is_deleted', 0 )
->orderBy('id', 'desc')
->orderByRaw('RAND()')
或者从上面的查询中获得结果,而不使用->orderByRaw('RAND()')
并执行shuffle()
$galleries = $galleries->toArray();
shuffle($galleries);
以上是关于sql查询到子查询的laravel查询的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8 - MS SQL - 查询生成器 - 使用 DB Raw。尝试使代码正确,使其像工作的 MSSQL 代码一样工作
在 Laravel 5 Eloquent 中获取原始 SQL 查询的结果
从原始 SQL 到 Laravel Eloquent 或查询构建器
sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li