Mysql SQL:按rowID排序,然后根据rowID按列排序
我有以下Mysql SQL:按rowID排序,然后根据rowID按列排序,mysql,sql,database,sorting,sql-order-by,Mysql,Sql,Database,Sorting,Sql Order By,我有以下“部门”表: +-------+-------------+-------------------+ | rowid | department | parent_department | +-------+-------------+-------------------+ | 10 | Main Office | NULL | +-------+-------------+-------------------+ | 11 | Back Offi
“部门”
表:
+-------+-------------+-------------------+
| rowid | department | parent_department |
+-------+-------------+-------------------+
| 10 | Main Office | NULL |
+-------+-------------+-------------------+
| 11 | Back Office | 10 |
+-------+-------------+-------------------+
| 12 | Commercial | NULL |
+-------+-------------+-------------------+
| 13 | Outdoor | NULL |
+-------+-------------+-------------------+
| 14 | Beach | 13 |
+-------+-------------+-------------------+
| 15 | Gardening | 13 |
+-------+-------------+-------------------+
| 16 | Accounting | 10 |
+-------+-------------+-------------------+
我想根据rowid和家长部门订购:
+-------+-------------+-------------------+
| rowid | department | parent_department |
+-------+-------------+-------------------+
| 10 | Main Office | NULL |
+-------+-------------+-------------------+
| 11 | Back Office | 10 |
+-------+-------------+-------------------+
| 16 | Accounting | 10 |
+-------+-------------+-------------------+
| 13 | Outdoor | NULL |
+-------+-------------+-------------------+
| 14 | Beach | 13 |
+-------+-------------+-------------------+
| 15 | Gardening | 13 |
+-------+-------------+-------------------+
| 12 | Commercial | NULL |
+-------+-------------+-------------------+
因此,对于每个rowid,查找是否存在'parents\u departments'
,并按如下所示对其进行排序
请注意,我尚未设计当前表,遗憾的是,我没有更改它的权限请尝试以下操作:
SELECT rowid, department, parent_department
FROM departments
ORDER BY IFNULL(parent_department, rowid), rowid;
@shmosel…不错…但我在本地和返回的rowid上试过,顺序是10,11,16,12,13,14,15@AnkitAgrawal若父组之间应该有任何排序,OP并没有指定它。我的假设是这不重要。