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

求SQL查询语句:筛选根路径含1.2.4的最高层级数据

筛选根路径为1.2.4的最高层级数据SQL解决方案

要筛选出根路径包含1.2.4的最高层级数据(排除所有属于其他条目子级的记录),可以通过以下几种SQL实现方式解决:

方法1:使用NOT EXISTS(修正版)

如果之前使用NOT EXISTS未得到正确结果,大概率是父级匹配条件有误。正确的写法需要确保当前记录的路径是另一条记录路径的完整子级(即父级路径后紧跟.和后续层级):

SELECT t1.path
FROM path_table t1
WHERE 
  -- 匹配根路径为1.2.4的所有记录(包含直接根节点1.2.4)
  (t1.path = '1.2.4' OR t1.path LIKE '1.2.4.%')
  AND NOT EXISTS (
    SELECT 1
    FROM path_table t2
    WHERE 
      -- 确认t1是t2的子级
      t1.path LIKE CONCAT(t2.path, '.%')
      -- 同时t2也属于1.2.4根路径下
      AND (t2.path = '1.2.4' OR t2.path LIKE '1.2.4.%')
  );

方法2:使用LEFT JOIN筛选无父级的记录

通过左连接父级记录,筛选出没有匹配到父级的条目,即为最高层级数据:

SELECT t1.path
FROM path_table t1
LEFT JOIN path_table t2 
  ON t1.path LIKE CONCAT(t2.path, '.%')
  AND (t2.path = '1.2.4' OR t2.path LIKE '1.2.4.%')
WHERE 
  (t1.path = '1.2.4' OR t1.path LIKE '1.2.4.%')
  AND t2.path IS NULL;

关键说明

  • 核心逻辑:判断当前记录是否存在一个同根路径下的父级记录(父级路径+.是当前路径的前缀)
  • 使用CONCAT(t2.path, '.%')而非单纯的LIKE t2.path '%',可以避免类似1.2.4.41被误判为1.2.4.4子级的情况

内容的提问来源于stack exchange,提问作者Sara Bernar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:26:07