Thinkphp5随机从数据库中抽取数据
之前一直从网上搜,找到一个方案。思路是从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();
评论已关闭