php – MySQL:如何通过( – )破折号排序

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – MySQL:如何通过( – )破折号排序脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我怎么能用破折号订购?

@H_502_8@

例如,我在下面有这些数据,@H_502_8@

@H_502_8@

page_id   url
1         - a
2         - b
3         --- c
4         --- d
5         - e
6         - f
7         -- g
8         -- h

我追求的结果,@H_502_8@

@H_502_8@

page_id   url
1         - a
2         - b
5         - e
6         - f
7         -- g
8         -- h
3         --- c
4         --- d

如果我这样做,@H_502_8@

@H_502_8@

ORDER by x.url ASC

我还是这个,@H_502_8@

@H_502_8@

page_id   url
1         - a
2         - b
3         --- c
4         --- d
5         - e
6         - f
7         -- g
8         -- h

有任何想法吗?@H_502_8@

编辑:@H_502_8@

我的实际sql,@H_502_8@

@H_502_8@

SELECT 
    *,IF(grandparentURL REGExp '^[a-z0-9\-]+$',CONCAT('--- ',url),IF(parentURL REGEXP '^[a-z0-9\-]+$',CONCAT('-- ',CONCAT('- ',url))) AS url
From
(
    SELECT 
        p.page_id,p.url,p2.url AS parentURL,P3.url AS grandparentURL

    From page AS p

    LEFT JOIN page AS p2 
    ON p.parent_id = p2.page_id AND p.page_id != p2.page_id

    LEFT JOIN page AS p3 
    ON p2.parent_id = p3.page_id AND p2.page_id != p3.page_id

    WHERE IF('5' REGEXP '^[0-9]+$',p.page_id != '5',p.page_id IS NOT NULL)
    AND p.url != 'CMS' 
) x

ORDER by x.url ASC

解决方法

执行MULTIPLE命令…首先找到空间的位置首先全部分组…然后按整个URL排序.由于common -b和-a将在同一个分组中,它们的空间将它们保持在“1”组……然后,从那里,整个URL将强制你的正确 – a,-b,-c等

@H_502_8@

@H_502_8@

ORDER BY INSTR('x.url',' '),x.url

脚本宝典总结

以上是脚本宝典为你收集整理的php – MySQL:如何通过( – )破折号排序全部内容,希望文章能够帮你解决php – MySQL:如何通过( – )破折号排序所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。