gpt4 book ai didi

php - MySQL:如何按 (-) 破折号排序

转载 作者:可可西里 更新时间:2023-11-01 07:37:47 27 4
gpt4 key购买 nike

如何订购破折号?

例如,我有下面这些数据,

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

我追求的结果,

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

如果我这样做,

ORDER by x.url ASC

我还是明白了,

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

有什么想法吗?

编辑:

我的实际 SQL,

SELECT 
*,
IF(grandparentURL REGEXP '^[a-z0-9\-]+$', CONCAT('--- ', url), IF(parentURL REGEXP '^[a-z0-9\-]+$', CONCAT('-- ', url), 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

最佳答案

按照...首先按找到空格的位置进行多重排序...从那里开始,然后按整个 URL 排序。由于公共(public) -b 和 -a 将在同一组中,它们的空间将它们保持在组“1”中......然后,整个 URL 将强制您使用正确的 -a、-b、-c 等

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

关于php - MySQL:如何按 (-) 破折号排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com