关于模型中原始表达式的问题,请教各位大牛

Major::where(DB::raw('depth=0 and BIT_COUNT(52 & subjects)>=count'))->paginate(20)

上面是我在 laravel 中使用的查询语句,查询到了765个结果,

SELECT * from major_require where depth=0 and BIT_COUNT(52 & subjects)>=count

这是我在 mysql 中执行的查询sql,查询到了38559个结果

请教各位大牛,这两种写法到底区别是什么,为什么使用原始表达式,查询出的结果和实际sql语句查询的不一致呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

你这不是分页了吗?所以显示的是第一页的数据。试着把 paginate(20) 去掉,看看数据是否一样。

4年前 评论

@飞机飞过天空 总数不一致,不过还是感谢

4年前 评论

toSql()一下,打印出sql比较一下就知道啦

4年前 评论

看看是不是有软删除,或者有全局查询条件

4年前 评论

打印模型原始查询语句 对比。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!