如何从数据库中倒序获取指定id及小于该id的所有对应数据
员工表id范围查询实现方案
核心逻辑
你要的结果本质是筛选所有id小于等于传入$id的记录,再按id倒序排列即可,不需要复杂的多条件拼接。
1. 原生SQL写法
直接执行以下SQL即可,注意用参数绑定传入$id避免SQL注入:
SELECT * FROM employee WHERE id <= ? ORDER BY id DESC;
2. PHP原生实现示例(PDO)
<?php // 取传入的id值 $id = $request->id; // 假设你已经初始化了PDO连接对象$pdo $sql = "SELECT * FROM employee WHERE id <= :id ORDER BY id DESC"; $stmt = $pdo->prepare($sql); // 绑定整数类型参数 $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); // 拿到查询结果 $employeeList = $stmt->fetchAll(PDO::FETCH_ASSOC); ?>
3. 主流框架写法示例
Laravel 查询构造器
$id = $request->id; $employeeList = \DB::table('employee') ->where('id', '<=', $id) ->orderBy('id', 'desc') ->get();
Laravel Eloquent 模型(假设对应模型为Employee)
$employeeList = Employee::where('id', '<=', $id) ->orderBy('id', 'desc') ->get();
ThinkPHP 写法
$employeeList = Db::name('employee') ->where('id', '<=', $id) ->order('id', 'desc') ->select();
注意事项
- 禁止直接将
$id拼接进SQL语句,必须走参数绑定,防止SQL注入风险 - 如果需要限制返回的记录条数,可以在查询语句最后追加LIMIT条件
内容的提问来源于stack exchange,提问作者Subhadip Ghosh
相关产品推荐
相关产品推荐

