首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >口才/PHP范围(从/到)

口才/PHP范围(从/到)
EN

Stack Overflow用户
提问于 2017-07-24 19:50:48
回答 5查看 584关注 0票数 3

例如,我的数据库结构是:

代码语言:javascript
复制
+------------+----------+
| Range from | Range To |
+------------+----------+
|        100 |      200 |
|        220 |      250 |
|        500 |      600 |
|        620 |      700 |
+------------+----------+

我需要检查一下500号是否存在。这应该返回true,因为有一行500-600。660也应该返回true,因为有行620-700。

我怎样才能用Eloquent有效地查询它,或者我只能用原生PHP来做这件事?我想避免使用循环,但我不知道这是否可能。

要提前做好准备。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-07-24 20:15:11

您可以获取所有存在的范围并对结果进行计数:

代码语言:javascript
复制
$value = 660;
$rangeExist = ModelName::where('range_from', '<=', $value)
                    ->where('range_to', '>=', $value)
                    ->exists();
if ($rangeExist) {
    // range exist.
}

此代码即使在500的情况下也能正常工作:)

票数 0
EN

Stack Overflow用户

发布于 2017-07-24 19:54:29

你可以这样做:

代码语言:javascript
复制
$value = 500;
$model = Model::where('from', '<', $value)->where('to', '>', $value)->count();
if ($model > 0) {
    // It does exist.
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-24 19:54:50

你应该试试这样的东西:

代码语言:javascript
复制
$result = Model::where('range_from', '<=', $value)
               ->where('range_to', '>=', $value)
               ->count() > 0;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45279898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档