You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询需求:排除指定匹配值及之前的所有数据

解决方案

核心思路是先定位到你要排除的目标name对应的id,然后只查询id小于该目标id的记录(因为你用ORDER BY id desc排序,id越小的在结果里越靠后,也就是你要保留的"之后的数据")。

方法一:分步查询(逻辑更清晰)

先获取目标name对应的id,再用这个id作为过滤条件:

// 替换这里的值为你需要排除的指定name
$target_name = 'reseller3';
// 获取目标name对应的id
$target_id = $this->db->select('id')->where('name', $target_name)->get('level_list')->row()->id;

// 查询目标id之后的所有记录
$query2 = $this->db->where('id <', $target_id)->order_by('id', 'desc')->get('level_list');

// 输出结果
foreach($query2->result() as $user_data) {
    echo $user_data->real_name."<br/>";
}

方法二:子查询一步完成

直接在SQL里用子查询获取目标id,简化代码结构:

// 替换这里的值为你需要排除的指定name
$target_name = 'reseller3';
$sql = "SELECT * FROM level_list 
        WHERE id < (SELECT id FROM level_list WHERE name = ?) 
        ORDER BY id desc";
$query2 = $this->db->query($sql, array($target_name));

// 输出结果
foreach($query2->result() as $user_data) {
    echo $user_data->real_name."<br/>";
}

这两种方式都能精准实现你的需求:指定reseller3时输出reseller2,reseller1,指定reseller2时输出reseller1。

内容的提问来源于stack exchange,提问作者Osman Gani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:15:41