如何使用MySQL COALESCE指定主排序顺序

如何使用MySQL COALESCE指定主排序顺序,mysql,coalesce,Mysql,Coalesce,我有一个旧表,它使用父/子结构及其ID,我需要按父级的名称对其排序,然后按子级排序(父级的nullParent\u ID) 我已经能够使用下面所示的SQL按子名称对其进行排序,但无法对主节点进行排序(电缆应在摄像机之前) 我已经修补了各种订单的可能性,但无法得到我需要的那种。感谢您的指导 表格行 id | parent_id | name -------------------------------- 1 | null | Cameras 2 | 1 | H

我有一个旧表,它使用父/子结构及其ID,我需要按父级的名称对其排序,然后按子级排序(父级的
null
Parent\u ID)

我已经能够使用下面所示的SQL按子名称对其进行排序,但无法对主节点进行排序(
电缆应在
摄像机之前)

我已经修补了各种订单的可能性,但无法得到我需要的那种。感谢您的指导

表格行

id  | parent_id | name
--------------------------------
1   | null      | Cameras
2   | 1         | HandyCam 2000 5-50
3   | 1         | Netgear 360
4   | null      | Tripods
5   | 4         | Deluxe Tripod
6   | null      | Lighting
7   | 6         | Light Diffuser
10  | 6         | Really bright bulbs
11  | 1         | 16MM Handheld
12  | 6         | Big Lightbulb assembly
13  | 4         | HandyCam Stand
16  | 4         | My New Tripod
181 | null      | Cables
排序结果(仅对子项进行排序)


您需要将表本身连接起来,这样就可以获得每个子表的父表名称,并在排序中使用该名称,而不是
COALESCE(a.parent\u id,a.id)


我可以把钱寄到哪里????非常感谢…我想这是一个连接,因此简单SQL中的别名…再次感谢!
id  | parent_id | name
--------------------------------
1   | null      | Cameras
2   | 1         | HandyCam 2000 5-50
3   | 1         | Netgear 360
4   | null      | Tripods
5   | 4         | Deluxe Tripod
6   | null      | Lighting
7   | 6         | Light Diffuser
10  | 6         | Really bright bulbs
11  | 1         | 16MM Handheld
12  | 6         | Big Lightbulb assembly
13  | 4         | HandyCam Stand
16  | 4         | My New Tripod
181 | null      | Cables
id  | parent_id | name
--------------------------------
1   | null      | Cameras
11  | 1         |    16MM Handheld
2   | 1         |    HandyCam 2000 5-50
3   | 1         |    Netgear 360
4   | null      | Tripods
5   | 4         |    Deluxe Tripod
13  | 4         |    HandyCam Stand
16  | 4         |    My New Tripod
6   | null      | Lighting
10  | 6         |    Really bright bulbs
12  | 6         |    Big Lightbulb assembly
7   | 6         |   Light Diffuser
181 | null      | Cables
SELECT a.id, a.parent_id,IF(a.parent_id IS NULL, a.name, CONCAT('   ', a.name)) AS name
FROM `studio_tvs_equipment` AS a
JOIN studio_tvs_equipment AS b ON IF(a.parent_id IS NULL, a.id = b.id, b.id = a.parent_id)
ORDER BY IF(a.parent_id IS NULL, a.name, b.name), a.parent_id IS NOT NULL, a.name