我怎么能用破折号订购?
例如,我在下面有这些数据,
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
最佳答案 执行MULTIPLE命令…首先找到空间的位置首先全部分组…然后按整个URL排序.由于common -b和-a将在同一个分组中,它们的空间将它们保持在“1”组……然后,从那里,整个URL将强制你的正确 – a,-b,-c等
ORDER BY INSTR('x.url', ' '), x.url