php - 优化许多 "BETWEEN ? AND ?"where 子句

标签 php mysql sql laravel laravel-4

我正在尝试抓取里程在一定范围内的车辆 $range$interval .目前,有大量between ? and ?极大地减慢查询速度的子句。有没有更好的方法来完成这个?我认为模运算可能有效,尽管 $range使它变得更加困难。

$interval = 15000;
$range = 5000;
$max = 3000000;

for ($i = $interval; $i < $max; $i += $interval)
{
    $between = [
        $i - $range,
        $i + $range,
    ];

    // generates "WHERE mileage BETWEEN ? AND ? OR mileage BETWEEN ? AND ? ..."
    $query->orWhereBetween('mileage', $between);
}

最佳答案

select .. where (mileage>=15000) and ((mileage-10000) mod 15000)<=10000

关于php - 优化许多 "BETWEEN ? AND ?"where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38154478/

相关文章:

php - 没有返回结果的sql

mysql - 在 sql 中显示某些信息(低于某个值)

php - 如何在 php mysql 中将 varchar 转换为日期?

php - 在所有作业完成后轮询 Laravel 队列

php - 无法从 mysql 表中获取所有值

mysql - 如何将🚕🎉之类的字符存储到MySQL中

mysql - 由于错误 150(外键约束),删除后无法重新创建 mysql 表!

php - 在 mysql 中应用联接后如何获取字段为 null 或空的所有列

sql - 如何使用链接服务器将数据从一个数据库提取到另一个数据库?

php - 什么更好?国家、州和城市是否在数据库中?