无限级分类中的一个高级BUG

相信很多人都用过无限级分类,这种分类方式简单高效,管理起来也比较方便,不过小high今天在进行新一轮的尝试的时候发现了一个之前没有遇到过的BUG。

之前我们在用的时候很多时候sql语句是这么写的

1
select *,concat(path, '_', id) as ids from cate order by ids

但是今天出现了一个小bug我把数据表的状态发出来

wuxianji相信眼睛比较敏锐的朋友们已经发现,如果遇到10以上的顶级分类的时候,就会出现这种情况,这个时候的主要问题就是mysql的排序并不是自然排序,而是用ascii码进行的二进制排序,所以我们要将它变成自然排序

1
2
3
select *,concat(path, '_', id) as ids from cate order by ids*1
 
select *,concat(path, '_', id) as ids from cate order by ids+0

通过百度搜索并没有直接mysql自然排序的结果,只是找到这个看起来挺奇怪但是又非常凑效的一个东西,小high亲测,非常好使

wuxianji_2

哎 不得不说一个小小的问题,又被我发现了一个大问题,就是分隔符的问题,又花了我一个早上的时间来想通这个事儿,

分隔符要用 ‘-’,不要用下划线 ‘_’


注::转载至小High博客 » [小high原创]无限级分类中的一个高级BUG

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值