首页 > 解决方案 > 如何在 Eloquent 中查询可分性?

问题描述

我在 MySQL 中有这个查询,它查找 ID 减 4 可被 6 整除的所有行。

SELECT * FROM stocks where ((id-4) % 6) = 0;

因此,它返回第 10、16、22 行等。

现在我正在尝试在 Eloquent 中执行相同的查询,但我遇到了问题。如果我这样做,我会收到一条错误消息,提示“遇到非数字值”:

$stocks = Stock::where((('id' - 4) % 6), 0)->get();

我知道这是因为'id'这里不被认为是一个数字。但是,如果我尝试这个,那么错误是“使用未知常量 id”:

$stocks = Stock::where(((id - 4) % 6), 0)->get();

那么我该如何执行这个查询呢?

标签: mysqleloquent

解决方案


简单的解决方案是使用raw expressions.

这是您的官方文档链接

所以你的查询可能看起来像

Stock::whereRaw('(id-4)%6=0')->get();

推荐阅读