最近遇到了这样的一个问题,在无限极分类表中,需要根据第一级获取第三级,跳过第二级,但是数据表又没有级别这个字段,不过有父id_list字段,如:pid_list:0,1,10,35,这下该怎么办呢
经过搜索发现了这样一段代码
select length(field1)-length(replace(field1,'#','')) from test;
诶,这不就是了嘛
然后就有了下面的sql
select * from category where find_in_set('1',pid_list) and length(pid_list)-length(replace(pid_list,",","")) = 2;
查询 pid_list 里面含有 id=1 的数据 并且 pid_list 字段 有两个 逗号(,)的数据不就是第三级了嘛
这里简单理解一下
其实就是 把这个字段的某个字符替换成空字符 ,然后用 替换之前的总长度 减去 替换后的长度 就是替换了的次数,也就是这个字符出现的次数
哈哈,真的恍然大悟啊
