之前一直从网上搜,找到一个方案。思路是从id列中找到最小的,然后去count下总共有多少,于是就能找到id最大的(最小+总数)。很好奇为啥没有用order by rand()或者order by newId()的。
我自己尝试用了下->order('rand()'),结果报错,估计是出于安全考虑。
于是又找了找资料,从这里(TP5完全开发手册)找到了解决方案。

摘录如下:
V5.0.17+版本开始,当你的order排序中使用了SQL函数的时候,请使用orderRaw方法替代order,例如:

$xxx->where('status=1')->orderRaw('rand()')->limit(5)->select(); 

标签: none

评论已关闭