例如,我的数据库结构是:
+------------+----------+
| Range from | Range To |
+------------+----------+
| 100 | 200 |
| 220 | 250 |
| 500 | 600 |
| 620 | 700 |
+------------+----------+我需要检查一下500号是否存在。这应该返回true,因为有一行500-600。660也应该返回true,因为有行620-700。
我怎样才能用Eloquent有效地查询它,或者我只能用原生PHP来做这件事?我想避免使用循环,但我不知道这是否可能。
要提前做好准备。
发布于 2017-07-24 20:15:11
您可以获取所有存在的范围并对结果进行计数:
$value = 660;
$rangeExist = ModelName::where('range_from', '<=', $value)
->where('range_to', '>=', $value)
->exists();
if ($rangeExist) {
// range exist.
}此代码即使在500的情况下也能正常工作:)
发布于 2017-07-24 19:54:29
你可以这样做:
$value = 500;
$model = Model::where('from', '<', $value)->where('to', '>', $value)->count();
if ($model > 0) {
// It does exist.
}发布于 2017-07-24 19:54:50
你应该试试这样的东西:
$result = Model::where('range_from', '<=', $value)
->where('range_to', '>=', $value)
->count() > 0;https://stackoverflow.com/questions/45279898
复制相似问题